Compare commits
46 Commits
0.303.0
...
lucide-vue
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d1d57d3c85 | ||
|
|
701c2fb6b2 | ||
|
|
294ec9c727 | ||
|
|
99c883e60a | ||
|
|
9e68779d22 | ||
|
|
06372db723 | ||
|
|
114fb08556 | ||
|
|
3bad7f6ced | ||
|
|
e450afe408 | ||
|
|
6fcfc820ca | ||
|
|
55f264bea6 | ||
|
|
675158df16 | ||
|
|
042393a931 | ||
|
|
551635003c | ||
|
|
5c7119f6d1 | ||
|
|
7bfdb2f54a | ||
|
|
e3abcdbcc6 | ||
|
|
62d350140e | ||
|
|
ad90ee7582 | ||
|
|
b0e825cb57 | ||
|
|
d4cbe899fb | ||
|
|
be3ccc8ece | ||
|
|
e56b09d400 | ||
|
|
7e936c8803 | ||
|
|
c9ffa4033f | ||
|
|
32a6187d69 | ||
|
|
2bf20db4bf | ||
|
|
4473df5ad5 | ||
|
|
bc5efd7f0d | ||
|
|
05f209cb04 | ||
|
|
ef89510a47 | ||
|
|
b72cea6399 | ||
|
|
d2152b3cdd | ||
|
|
ea43df6431 | ||
|
|
4042a366e8 | ||
|
|
5e0ba7e897 | ||
|
|
6b4f575992 | ||
|
|
92784de9c5 | ||
|
|
314ee3b255 | ||
|
|
ee7add11bf | ||
|
|
001d0a51fb | ||
|
|
fd4308e755 | ||
|
|
59893119b5 | ||
|
|
faff6a8269 | ||
|
|
3fe74beeb0 | ||
|
|
f8aafd63b9 |
@@ -7,4 +7,5 @@ node_modules
|
|||||||
.eslintrc.js
|
.eslintrc.js
|
||||||
docs/images
|
docs/images
|
||||||
docs/guide/basics/examples
|
docs/guide/basics/examples
|
||||||
|
docs/guide/advanced/examples
|
||||||
packages/lucide-react/dynamicIconImports.js
|
packages/lucide-react/dynamicIconImports.js
|
||||||
|
|||||||
13
.eslintrc.js
@@ -7,20 +7,12 @@ module.exports = {
|
|||||||
node: true,
|
node: true,
|
||||||
},
|
},
|
||||||
extends: ['airbnb-base', 'prettier'],
|
extends: ['airbnb-base', 'prettier'],
|
||||||
plugins: ['import', 'prettier', '@html-eslint'],
|
plugins: ['import', '@html-eslint'],
|
||||||
rules: {
|
rules: {
|
||||||
'no-console': 'off',
|
'no-console': 'off',
|
||||||
'no-param-reassign': 'off',
|
'no-param-reassign': 'off',
|
||||||
'no-shadow': 'off',
|
'no-shadow': 'off',
|
||||||
'no-use-before-define': 'off',
|
'no-use-before-define': 'off',
|
||||||
'prettier/prettier': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
singleQuote: true,
|
|
||||||
trailingComma: 'all',
|
|
||||||
printWidth: 100
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'import/no-extraneous-dependencies': [
|
'import/no-extraneous-dependencies': [
|
||||||
'error',
|
'error',
|
||||||
{ devDependencies: ['**/*.test.js', '**/*.spec.js', './scripts/**'] },
|
{ devDependencies: ['**/*.test.js', '**/*.spec.js', './scripts/**'] },
|
||||||
@@ -37,7 +29,7 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
parserOptions: {
|
parserOptions: {
|
||||||
tsconfigRootDir: __dirname,
|
tsconfigRootDir: __dirname,
|
||||||
project: ['./site/tsconfig.json', './packages/*/tsconfig.json'],
|
project: ['./docs/tsconfig.json', './packages/*/tsconfig.json'],
|
||||||
ecmaVersion: 'latest',
|
ecmaVersion: 'latest',
|
||||||
sourceType: 'module',
|
sourceType: 'module',
|
||||||
},
|
},
|
||||||
@@ -46,7 +38,6 @@ module.exports = {
|
|||||||
files: ['./icons/*.svg'],
|
files: ['./icons/*.svg'],
|
||||||
parser: '@html-eslint/parser',
|
parser: '@html-eslint/parser',
|
||||||
rules: {
|
rules: {
|
||||||
'prettier/prettier': 'off',
|
|
||||||
'@html-eslint/require-doctype': 'off',
|
'@html-eslint/require-doctype': 'off',
|
||||||
'@html-eslint/no-duplicate-attrs': 'error',
|
'@html-eslint/no-duplicate-attrs': 'error',
|
||||||
'@html-eslint/no-inline-styles': 'error',
|
'@html-eslint/no-inline-styles': 'error',
|
||||||
|
|||||||
8
.github/actions/build-and-test.yml
vendored
@@ -9,16 +9,16 @@ inputs:
|
|||||||
runs:
|
runs:
|
||||||
using: "composite"
|
using: "composite"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: actions/setup-node@v3
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 16
|
node-version: 16
|
||||||
|
|
||||||
- uses: pnpm/action-setup@v2.0.1
|
- uses: pnpm/action-setup@v2
|
||||||
name: Install pnpm
|
name: Install pnpm
|
||||||
id: pnpm-install
|
id: pnpm-install
|
||||||
with:
|
with:
|
||||||
version: 7
|
version: 8
|
||||||
run_install: false
|
run_install: false
|
||||||
|
|
||||||
- name: Get pnpm store directory
|
- name: Get pnpm store directory
|
||||||
|
|||||||
8
.github/actions/check-icons.yml
vendored
@@ -9,16 +9,16 @@ inputs:
|
|||||||
runs:
|
runs:
|
||||||
using: "composite"
|
using: "composite"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: actions/setup-node@v3
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 16
|
node-version: 16
|
||||||
|
|
||||||
- uses: pnpm/action-setup@v2.0.1
|
- uses: pnpm/action-setup@v2
|
||||||
name: Install pnpm
|
name: Install pnpm
|
||||||
id: pnpm-install
|
id: pnpm-install
|
||||||
with:
|
with:
|
||||||
version: 7
|
version: 8
|
||||||
run_install: false
|
run_install: false
|
||||||
|
|
||||||
- name: Get pnpm store directory
|
- name: Get pnpm store directory
|
||||||
|
|||||||
66
.github/labeler.yml
vendored
@@ -1,62 +1,92 @@
|
|||||||
# For changed dependencies
|
# For changed dependencies
|
||||||
📦 dependencies:
|
📦 dependencies:
|
||||||
- pnpm-lock.yaml
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- pnpm-lock.yaml
|
||||||
|
|
||||||
# For changes in documentation
|
# For changes in documentation
|
||||||
📖 documentation:
|
📖 documentation:
|
||||||
- docs/*.md
|
- changed-files:
|
||||||
- docs/**/*.md
|
- any-glob-to-any-file:
|
||||||
|
- docs/*.md
|
||||||
|
- docs/**/*.md
|
||||||
|
|
||||||
# For changes in the site, but not markdown files
|
# For changes in the site, but not markdown files
|
||||||
🌍 site:
|
🌍 site:
|
||||||
- 'docs/**'
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- 'docs/**'
|
||||||
|
|
||||||
# For changes in the metadata
|
# For changes in the metadata
|
||||||
🫧 metadata:
|
🫧 metadata:
|
||||||
- 'icons/*.json'
|
- changed-files:
|
||||||
- categories/*
|
- any-glob-to-any-file:
|
||||||
|
- 'icons/*.json'
|
||||||
|
- categories/*
|
||||||
|
|
||||||
# For changes or added icons
|
# For changes or added icons
|
||||||
🎨 icon:
|
🎨 icon:
|
||||||
- 'icons/*.svg'
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- 'icons/*.svg'
|
||||||
|
|
||||||
# For changes in the lucide package
|
# For changes in the lucide package
|
||||||
🧳 lucide package:
|
🧳 lucide package:
|
||||||
- 'packages/lucide/*'
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- 'packages/lucide/*'
|
||||||
|
|
||||||
# For changes in the lucide React package
|
# For changes in the lucide React package
|
||||||
⚛️ react package:
|
⚛️ react package:
|
||||||
- 'packages/lucide-react/*'
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- 'packages/lucide-react/*'
|
||||||
|
|
||||||
# For changes in the lucide React Native package
|
# For changes in the lucide React Native package
|
||||||
⚛️ react native package:
|
⚛️ react native package:
|
||||||
- 'packages/lucide-react-native/*'
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- 'packages/lucide-react-native/*'
|
||||||
|
|
||||||
# For changes in the lucide vue packages
|
# For changes in the lucide vue packages
|
||||||
💎 vue package:
|
💎 vue package:
|
||||||
- 'packages/lucide-vue/*'
|
- changed-files:
|
||||||
- 'packages/lucide-vue-next/*'
|
- any-glob-to-any-file:
|
||||||
|
- 'packages/lucide-vue/*'
|
||||||
|
- 'packages/lucide-vue-next/*'
|
||||||
|
|
||||||
# For changes in the lucide angular package
|
# For changes in the lucide angular package
|
||||||
🅰️ angular package:
|
🅰️ angular package:
|
||||||
- 'packages/lucide-angular/*'
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- 'packages/lucide-angular/*'
|
||||||
|
|
||||||
# For changes in the lucide preact package
|
# For changes in the lucide preact package
|
||||||
⚛️ preact package:
|
⚛️ preact package:
|
||||||
- 'packages/lucide-preact/*'
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- 'packages/lucide-preact/*'
|
||||||
|
|
||||||
# For changes in the lucide svelte package
|
# For changes in the lucide svelte package
|
||||||
🧣 svelte package:
|
🧣 svelte package:
|
||||||
- 'packages/lucide-svelte/*'
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- 'packages/lucide-svelte/*'
|
||||||
|
|
||||||
# For changes in the lucide solid package
|
# For changes in the lucide solid package
|
||||||
🪝 solid package:
|
🪝 solid package:
|
||||||
- 'packages/lucide-solid/*'
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- 'packages/lucide-solid/*'
|
||||||
|
|
||||||
# For changes in the lucide static package
|
# For changes in the lucide static package
|
||||||
🪨 static package:
|
🪨 static package:
|
||||||
- 'packages/lucide-static/*'
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- 'packages/lucide-static/*'
|
||||||
|
|
||||||
# For changes in the lucide flutter package
|
# For changes in the lucide flutter package
|
||||||
🏹 flutter package:
|
🏹 flutter package:
|
||||||
- 'packages/lucide-flutter/*'
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- 'packages/lucide-flutter/*'
|
||||||
|
|||||||
4
.github/workflows/ci.yml
vendored
@@ -15,11 +15,11 @@ jobs:
|
|||||||
VERSION: ${{ steps.new-version.outputs.NEW_VERSION }}
|
VERSION: ${{ steps.new-version.outputs.NEW_VERSION }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: pnpm/action-setup@v2
|
- uses: pnpm/action-setup@v2
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
- uses: actions/setup-node@v3.8.1
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|||||||
5
.github/workflows/close-stale-prs.yml
vendored
@@ -7,12 +7,11 @@ jobs:
|
|||||||
stale:
|
stale:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@v3
|
- uses: actions/stale@v9
|
||||||
with:
|
with:
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
stale-pr-message: This PR is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 5 days.
|
stale-pr-message: This PR is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 5 days.
|
||||||
close-pr-message: This PR was closed because it has been stalled for 5 days with no activity.
|
close-pr-message: This PR was closed because it has been stalled for 5 days with no activity.
|
||||||
close-pr-label: 🧶 stale
|
close-pr-label: 🧶 stale
|
||||||
days-before-stale: 30
|
days-before-stale: 30
|
||||||
days-before-close: 5
|
days-before-close: -1
|
||||||
days-before-pr-close: -1
|
|
||||||
|
|||||||
2
.github/workflows/labeler.yml
vendored
@@ -9,4 +9,4 @@ jobs:
|
|||||||
pull-requests: write
|
pull-requests: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/labeler@v4
|
- uses: actions/labeler@v5
|
||||||
|
|||||||
8
.github/workflows/linting.yml
vendored
@@ -2,18 +2,18 @@ name: Linting
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
branches:
|
||||||
- icons/**
|
- '**'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
linting:
|
linting:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: pnpm/action-setup@v2
|
- uses: pnpm/action-setup@v2
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
- uses: actions/setup-node@v3.8.1
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|||||||
4
.github/workflows/lucide-angular.yml
vendored
@@ -11,11 +11,11 @@ jobs:
|
|||||||
lucide-angular:
|
lucide-angular:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: pnpm/action-setup@v2
|
- uses: pnpm/action-setup@v2
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
- uses: actions/setup-node@v3.8.1
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|||||||
6
.github/workflows/lucide-font.yml
vendored
@@ -11,11 +11,11 @@ jobs:
|
|||||||
lucide-font:
|
lucide-font:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: pnpm/action-setup@v2
|
- uses: pnpm/action-setup@v2
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
- uses: actions/setup-node@v3.8.1
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
@@ -30,7 +30,7 @@ jobs:
|
|||||||
run: pnpm build:font
|
run: pnpm build:font
|
||||||
|
|
||||||
- name: "Upload to Artifacts"
|
- name: "Upload to Artifacts"
|
||||||
uses: actions/upload-artifact@v1
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: lucide-font
|
name: lucide-font
|
||||||
path: lucide-font
|
path: lucide-font
|
||||||
|
|||||||
4
.github/workflows/lucide-preact.yml
vendored
@@ -12,11 +12,11 @@ jobs:
|
|||||||
lucide-preact:
|
lucide-preact:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: pnpm/action-setup@v2
|
- uses: pnpm/action-setup@v2
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
- uses: actions/setup-node@v3.8.1
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|||||||
4
.github/workflows/lucide-react-native.yml
vendored
@@ -12,11 +12,11 @@ jobs:
|
|||||||
lucide-react-native:
|
lucide-react-native:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: pnpm/action-setup@v2
|
- uses: pnpm/action-setup@v2
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
- uses: actions/setup-node@v3.8.1
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|||||||
4
.github/workflows/lucide-react.yml
vendored
@@ -13,11 +13,11 @@ jobs:
|
|||||||
lucide-react:
|
lucide-react:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: pnpm/action-setup@v2
|
- uses: pnpm/action-setup@v2
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
- uses: actions/setup-node@v3.8.1
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|||||||
4
.github/workflows/lucide-solid.yml
vendored
@@ -12,11 +12,11 @@ jobs:
|
|||||||
lucide-solid:
|
lucide-solid:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: pnpm/action-setup@v2
|
- uses: pnpm/action-setup@v2
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
- uses: actions/setup-node@v3.8.1
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|||||||
4
.github/workflows/lucide-static.yml
vendored
@@ -11,11 +11,11 @@ jobs:
|
|||||||
lucide-static:
|
lucide-static:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: pnpm/action-setup@v2
|
- uses: pnpm/action-setup@v2
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
- uses: actions/setup-node@v3.8.1
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|||||||
4
.github/workflows/lucide-svelte.yml
vendored
@@ -12,11 +12,11 @@ jobs:
|
|||||||
lucide-svelte:
|
lucide-svelte:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: pnpm/action-setup@v2
|
- uses: pnpm/action-setup@v2
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
- uses: actions/setup-node@v3.8.1
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|||||||
4
.github/workflows/lucide-vue-next.yml
vendored
@@ -12,11 +12,11 @@ jobs:
|
|||||||
lucide-vue-next:
|
lucide-vue-next:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: pnpm/action-setup@v2
|
- uses: pnpm/action-setup@v2
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
- uses: actions/setup-node@v3.8.1
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|||||||
4
.github/workflows/lucide-vue.yml
vendored
@@ -12,11 +12,11 @@ jobs:
|
|||||||
lucide-vue:
|
lucide-vue:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: pnpm/action-setup@v2
|
- uses: pnpm/action-setup@v2
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
- uses: actions/setup-node@v3.8.1
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|||||||
4
.github/workflows/lucide.yml
vendored
@@ -12,11 +12,11 @@ jobs:
|
|||||||
lucide:
|
lucide:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: pnpm/action-setup@v2
|
- uses: pnpm/action-setup@v2
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
- uses: actions/setup-node@v3.8.1
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
|
|||||||
200
.github/workflows/pull-request.yml
vendored
@@ -6,24 +6,45 @@ on:
|
|||||||
- 'icons/*.svg'
|
- 'icons/*.svg'
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
|
- fix-icon-preview
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
lint-filenames:
|
||||||
|
if: github.repository == 'lucide-icons/lucide'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
ref: refs/pull/${{ github.event.pull_request.number }}/merge
|
||||||
|
- name: Get changed files
|
||||||
|
id: changed-files
|
||||||
|
uses: tj-actions/changed-files@v41
|
||||||
|
with:
|
||||||
|
files: icons/*
|
||||||
|
- name: Generate annotations
|
||||||
|
run: node ./scripts/lintFilenames.mjs
|
||||||
|
env:
|
||||||
|
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
||||||
|
|
||||||
lint-contributors:
|
lint-contributors:
|
||||||
if: github.repository == 'lucide-icons/lucide'
|
if: github.repository == 'lucide-icons/lucide'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
ref: refs/pull/${{ github.event.pull_request.number }}/merge
|
ref: refs/pull/${{ github.event.pull_request.number }}/merge
|
||||||
- name: Get changed files
|
- name: Get changed files
|
||||||
id: changed-files
|
id: changed-files
|
||||||
uses: tj-actions/changed-files@v35
|
uses: tj-actions/changed-files@v41
|
||||||
with:
|
with:
|
||||||
files: icons/*
|
files: icons/*
|
||||||
- uses: actions/setup-node@v3.8.1
|
- uses: actions/setup-node@v4
|
||||||
- name: Install simple-git (safer and faster than installing all deps)
|
- name: Install simple-git (safer and faster than installing all deps)
|
||||||
run: npm install simple-git
|
run: npm install simple-git
|
||||||
- name: Generate annotations
|
- name: Generate annotations
|
||||||
@@ -46,184 +67,43 @@ jobs:
|
|||||||
# Example for the previous substitution
|
# Example for the previous substitution
|
||||||
# input: +++ b/icons/accessibility.json%0A@@ -2,0 +3 @@%0A+ "contributors": ["hi"],%0A@@ -13 +14 @@%0A+}%0A
|
# input: +++ b/icons/accessibility.json%0A@@ -2,0 +3 @@%0A+ "contributors": ["hi"],%0A@@ -13 +14 @@%0A+}%0A
|
||||||
# output: ::$ANNOTATION_SEVERITY file=icons/accessibility.json,line=2,endLine=3,title=$ANNOTATION_TITLE::$ANNOTATION_DESCRIPTION%0A%0A+ "contributors": ["hi"],%0A@@ -13 +14 @@%0A+}%0A
|
# output: ::$ANNOTATION_SEVERITY file=icons/accessibility.json,line=2,endLine=3,title=$ANNOTATION_TITLE::$ANNOTATION_DESCRIPTION%0A%0A+ "contributors": ["hi"],%0A@@ -13 +14 @@%0A+}%0A
|
||||||
# - name: Fail if contributors have changed
|
|
||||||
# run: git diff --exit-code -- icons/*.json
|
|
||||||
|
|
||||||
generate-changed-icons-comment-data:
|
generate-changed-icons-comment:
|
||||||
if: github.repository == 'lucide-icons/lucide'
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
outputs:
|
pull-requests: write
|
||||||
generate-1px-stroke-width: ${{ steps.generate-1px-stroke-width.outputs.body }}
|
|
||||||
generate-2px-stroke-width: ${{ steps.generate-2px-stroke-width.outputs.body }}
|
|
||||||
generate-3px-stroke-width: ${{ steps.generate-3px-stroke-width.outputs.body }}
|
|
||||||
generate-24px-dpi-preview: ${{ steps.generate-24px-dpi-preview.outputs.body }}
|
|
||||||
generate-cohesion-check-random: ${{ steps.generate-cohesion-check-random.outputs.body }}
|
|
||||||
generate-cohesion-check-squares: ${{ steps.generate-cohesion-check-squares.outputs.body }}
|
|
||||||
generate-x-rays: ${{ steps.generate-x-rays.outputs.body }}
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
ref: refs/pull/${{ github.event.pull_request.number }}/merge
|
ref: refs/pull/${{ github.event.pull_request.number }}/merge
|
||||||
|
|
||||||
- name: Get changed files
|
- name: Get changed files
|
||||||
id: changed-files
|
id: changed-files
|
||||||
uses: tj-actions/changed-files@v35
|
uses: tj-actions/changed-files@v41
|
||||||
with:
|
with:
|
||||||
files: icons/*.svg
|
files: icons/*.svg
|
||||||
- name: Generate 24px dpi preview
|
|
||||||
id: generate-24px-dpi-preview
|
|
||||||
env:
|
|
||||||
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
||||||
run: |
|
|
||||||
delimiter="$(openssl rand -hex 8)"
|
|
||||||
echo "body<<$delimiter" >> $GITHUB_OUTPUT
|
|
||||||
while IFS= read -r file; do
|
|
||||||
cat "$file" | # get file content
|
|
||||||
tr '\n' ' ' | # remove line breaks
|
|
||||||
sed -e 's/<svg[^>]*>/<svg>/g' | # remove attributes from svg element
|
|
||||||
base64 -w 0 | # encode svg
|
|
||||||
sed "s|.*|<img title=\"$file\" alt=\"$file\" src=\"https://lucide.dev/api/gh-icon/dpi/24/&.svg\"/> |"
|
|
||||||
done <<< "$CHANGED_FILES" | tr '\n' ' ' >> $GITHUB_OUTPUT
|
|
||||||
echo >> $GITHUB_OUTPUT
|
|
||||||
echo "$delimiter" >> $GITHUB_OUTPUT
|
|
||||||
- name: Generate cohesion check random
|
|
||||||
id: generate-cohesion-check-random
|
|
||||||
env:
|
|
||||||
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
||||||
run: |
|
|
||||||
delimiter="$(openssl rand -hex 8)"
|
|
||||||
echo "body<<$delimiter" >> $GITHUB_OUTPUT
|
|
||||||
for file in $(printf "%s\\n" icons/*.svg | shuf | head -n$(awk -F' ' '{print NF}' <<< '${{ steps.changed-files.outputs.all_changed_files }}')); do
|
|
||||||
cat "$file" | # get file content
|
|
||||||
tr '\n' ' ' | # remove line breaks
|
|
||||||
sed -e 's/<svg[^>]*>/<svg>/g' | # remove attributes from svg element
|
|
||||||
base64 -w 0 | # encode svg
|
|
||||||
sed "s|.*|<img title=\"$file\" alt=\"$file\" src=\"https://lucide.dev/api/gh-icon/stroke-width/2/&.svg\"/> |"
|
|
||||||
done <<< "$CHANGED_FILES" | tr '\n' ' ' >> $GITHUB_OUTPUT
|
|
||||||
echo >> $GITHUB_OUTPUT
|
|
||||||
echo "$delimiter" >> $GITHUB_OUTPUT
|
|
||||||
- name: Generate cohesion check squares
|
|
||||||
id: generate-cohesion-check-squares
|
|
||||||
env:
|
|
||||||
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
||||||
run: |
|
|
||||||
delimiter="$(openssl rand -hex 8)"
|
|
||||||
echo "body<<$delimiter" >> $GITHUB_OUTPUT
|
|
||||||
for file in $(printf "%s\\n" icons/*square*.svg | shuf | head -n$(awk -F' ' '{print NF}' <<< '${{ steps.changed-files.outputs.all_changed_files }}')); do
|
|
||||||
cat "$file" | # get file content
|
|
||||||
tr '\n' ' ' | # remove line breaks
|
|
||||||
sed -e 's/<svg[^>]*>/<svg>/g' | # remove attributes from svg element
|
|
||||||
base64 -w 0 | # encode svg
|
|
||||||
sed "s|.*|<img title=\"$file\" alt=\"$file\" src=\"https://lucide.dev/api/gh-icon/stroke-width/2/&.svg\"/> |"
|
|
||||||
done <<< "$CHANGED_FILES" | tr '\n' ' ' >> $GITHUB_OUTPUT
|
|
||||||
echo >> $GITHUB_OUTPUT
|
|
||||||
echo "$delimiter" >> $GITHUB_OUTPUT
|
|
||||||
- name: Generate 1px stroke-width
|
|
||||||
id: generate-1px-stroke-width
|
|
||||||
env:
|
|
||||||
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
||||||
run: |
|
|
||||||
delimiter="$(openssl rand -hex 8)"
|
|
||||||
echo "body<<$delimiter" >> $GITHUB_OUTPUT
|
|
||||||
while IFS= read -r file; do
|
|
||||||
cat "$file" | # get file content
|
|
||||||
tr '\n' ' ' | # remove line breaks
|
|
||||||
sed -e 's/<svg[^>]*>/<svg>/g' | # remove attributes from svg element
|
|
||||||
base64 -w 0 | # encode svg
|
|
||||||
sed "s|.*|<img title=\"$file\" alt=\"$file\" src=\"https://lucide.dev/api/gh-icon/stroke-width/1/&.svg\"/> |"
|
|
||||||
done <<< "$CHANGED_FILES" | tr '\n' ' ' >> $GITHUB_OUTPUT
|
|
||||||
echo >> $GITHUB_OUTPUT
|
|
||||||
echo "$delimiter" >> $GITHUB_OUTPUT
|
|
||||||
- name: Generate 2px stroke-width
|
|
||||||
id: generate-2px-stroke-width
|
|
||||||
env:
|
|
||||||
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
||||||
run: |
|
|
||||||
delimiter="$(openssl rand -hex 8)"
|
|
||||||
echo "body<<$delimiter" >> $GITHUB_OUTPUT
|
|
||||||
while IFS= read -r file; do
|
|
||||||
cat "$file" | # get file content
|
|
||||||
tr '\n' ' ' | # remove line breaks
|
|
||||||
sed -e 's/<svg[^>]*>/<svg>/g' | # remove attributes from svg element
|
|
||||||
base64 -w 0 | # encode svg
|
|
||||||
sed "s|.*|<img title=\"$file\" alt=\"$file\" src=\"https://lucide.dev/api/gh-icon/stroke-width/2/&.svg\"/> |"
|
|
||||||
done <<< "$CHANGED_FILES" | tr '\n' ' ' >> $GITHUB_OUTPUT
|
|
||||||
echo >> $GITHUB_OUTPUT
|
|
||||||
echo "$delimiter" >> $GITHUB_OUTPUT
|
|
||||||
- name: Generate 3px stroke-width
|
|
||||||
id: generate-3px-stroke-width
|
|
||||||
run: |
|
|
||||||
delimiter="$(openssl rand -hex 8)"
|
|
||||||
echo "body<<$delimiter" >> $GITHUB_OUTPUT
|
|
||||||
while IFS= read -r file; do
|
|
||||||
cat "$file" | # get file content
|
|
||||||
tr '\n' ' ' | # remove line breaks
|
|
||||||
sed -e 's/<svg[^>]*>/<svg>/g' | # remove attributes from svg element
|
|
||||||
base64 -w 0 | # encode svg
|
|
||||||
sed "s|.*|<img title=\"$file\" alt=\"$file\" src=\"https://lucide.dev/api/gh-icon/stroke-width/3/&.svg\"/> |"
|
|
||||||
done <<< "$CHANGED_FILES" | tr '\n' ' ' >> $GITHUB_OUTPUT
|
|
||||||
echo >> $GITHUB_OUTPUT
|
|
||||||
echo "$delimiter" >> $GITHUB_OUTPUT
|
|
||||||
- name: Generate X-rays
|
|
||||||
id: generate-x-rays
|
|
||||||
env:
|
|
||||||
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
||||||
run: |
|
|
||||||
delimiter="$(openssl rand -hex 8)"
|
|
||||||
echo "body<<$delimiter" >> $GITHUB_OUTPUT
|
|
||||||
while IFS= read -r file; do
|
|
||||||
cat "$file" | # get file content
|
|
||||||
tr '\n' ' ' | # remove line breaks
|
|
||||||
sed -e 's/<svg[^>]*>/<svg>/g' | # remove attributes from svg element
|
|
||||||
base64 -w 0 | # encode svg
|
|
||||||
sed "s|.*|<img width=\"400\" title=\"$file\" alt=\"$file\" src=\"https://lucide.dev/api/gh-icon/$(basename ${file//\.svg/})/&.svg\"/> |"
|
|
||||||
done <<< "$CHANGED_FILES" | tr '\n' ' ' >> $GITHUB_OUTPUT
|
|
||||||
echo >> $GITHUB_OUTPUT
|
|
||||||
echo "$delimiter" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
add-changed-icons-comment:
|
|
||||||
if: github.repository == 'lucide-icons/lucide'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
pull-requests: write
|
|
||||||
needs: [generate-changed-icons-comment-data]
|
|
||||||
steps:
|
|
||||||
- name: Find Comment
|
- name: Find Comment
|
||||||
uses: peter-evans/find-comment@v2
|
uses: peter-evans/find-comment@v2
|
||||||
id: fc
|
id: pr-comment
|
||||||
with:
|
with:
|
||||||
issue-number: ${{ github.event.pull_request.number }}
|
issue-number: ${{ github.event.pull_request.number }}
|
||||||
comment-author: 'github-actions[bot]'
|
comment-author: 'github-actions[bot]'
|
||||||
body-includes: Added or changed icons
|
body-includes: Added or changed icons
|
||||||
|
|
||||||
|
- name: Generate comment markup
|
||||||
|
run: node ./scripts/generateChangedIconsCommentMarkup.mjs >> comment-markup.md
|
||||||
|
id: comment-markup
|
||||||
|
env:
|
||||||
|
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
||||||
|
|
||||||
- name: Create or update comment
|
- name: Create or update comment
|
||||||
uses: peter-evans/create-or-update-comment@v2
|
uses: peter-evans/create-or-update-comment@v3
|
||||||
with:
|
with:
|
||||||
comment-id: ${{ steps.fc.outputs.comment-id }}
|
comment-id: ${{ steps.pr-comment.outputs.comment-id }}
|
||||||
issue-number: ${{ github.event.pull_request.number }}
|
issue-number: ${{ github.event.pull_request.number }}
|
||||||
body: |
|
body-path: ./comment-markup.md
|
||||||
### Added or changed icons
|
|
||||||
${{ needs.generate-changed-icons-comment-data.outputs.generate-2px-stroke-width }}<br/>
|
|
||||||
<details>
|
|
||||||
<summary>Preview cohesion</summary>
|
|
||||||
${{ needs.generate-changed-icons-comment-data.outputs.generate-cohesion-check-squares }}<br/>
|
|
||||||
${{ needs.generate-changed-icons-comment-data.outputs.generate-2px-stroke-width }}<br/>
|
|
||||||
${{ needs.generate-changed-icons-comment-data.outputs.generate-cohesion-check-random }}<br/>
|
|
||||||
</details>
|
|
||||||
<details>
|
|
||||||
<summary>Preview stroke widths</summary>
|
|
||||||
${{ needs.generate-changed-icons-comment-data.outputs.generate-1px-stroke-width }}<br/>
|
|
||||||
${{ needs.generate-changed-icons-comment-data.outputs.generate-2px-stroke-width }}<br/>
|
|
||||||
${{ needs.generate-changed-icons-comment-data.outputs.generate-3px-stroke-width }}<br/>
|
|
||||||
</details>
|
|
||||||
<details>
|
|
||||||
<summary>DPI Preview (24px)</summary>
|
|
||||||
${{ needs.generate-changed-icons-comment-data.outputs.generate-24px-dpi-preview }}
|
|
||||||
</details>
|
|
||||||
<details>
|
|
||||||
<summary>Icon X-rays</summary>
|
|
||||||
${{ needs.generate-changed-icons-comment-data.outputs.generate-x-rays }}
|
|
||||||
</details>
|
|
||||||
edit-mode: replace
|
edit-mode: replace
|
||||||
|
|||||||
20
.github/workflows/release.yml
vendored
@@ -53,11 +53,11 @@ jobs:
|
|||||||
'lucide-svelte',
|
'lucide-svelte',
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: pnpm/action-setup@v2
|
- uses: pnpm/action-setup@v2
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
- uses: actions/setup-node@v3
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
@@ -85,12 +85,12 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [pre-release, lucide-font]
|
needs: [pre-release, lucide-font]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: actions/download-artifact@v2
|
- uses: actions/download-artifact@v3
|
||||||
- uses: pnpm/action-setup@v2
|
- uses: pnpm/action-setup@v2
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
- uses: actions/setup-node@v3
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
@@ -118,11 +118,11 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: pre-release
|
needs: pre-release
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: pnpm/action-setup@v2
|
- uses: pnpm/action-setup@v2
|
||||||
with:
|
with:
|
||||||
version: 8
|
version: 8
|
||||||
- uses: actions/setup-node@v3
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 18
|
node-version: 18
|
||||||
cache: 'pnpm'
|
cache: 'pnpm'
|
||||||
@@ -137,7 +137,7 @@ jobs:
|
|||||||
run: pnpm build:font
|
run: pnpm build:font
|
||||||
|
|
||||||
- name: "Upload to Artifacts"
|
- name: "Upload to Artifacts"
|
||||||
uses: actions/upload-artifact@v1
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: lucide-font
|
name: lucide-font
|
||||||
path: lucide-font
|
path: lucide-font
|
||||||
@@ -151,8 +151,8 @@ jobs:
|
|||||||
]
|
]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: actions/download-artifact@v2
|
- uses: actions/download-artifact@v3
|
||||||
- name: Zip font and icons
|
- name: Zip font and icons
|
||||||
run: |
|
run: |
|
||||||
zip -r lucide-font-${{ needs.pre-release.outputs.VERSION }}.zip lucide-font
|
zip -r lucide-font-${{ needs.pre-release.outputs.VERSION }}.zip lucide-font
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ stats
|
|||||||
node_modules
|
node_modules
|
||||||
tests
|
tests
|
||||||
scripts
|
scripts
|
||||||
site
|
|
||||||
src
|
src
|
||||||
build
|
build
|
||||||
babel.config.js
|
babel.config.js
|
||||||
|
|||||||
16
.prettierignore
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
pnpm-lock.yaml
|
||||||
|
|
||||||
|
# lucide-angular
|
||||||
|
packages/lucide-angular/.angular/cache
|
||||||
|
|
||||||
|
# lucide-static
|
||||||
|
packages/lucide-static/icons
|
||||||
|
packages/lucide-static/lib
|
||||||
|
packages/lucide-static/sprite.svg
|
||||||
|
packages/lucide-static/tags.json
|
||||||
|
packages/lucide-static/icon-nodes.json
|
||||||
|
packages/lucide-static/font
|
||||||
|
|
||||||
|
# lucide-svelte
|
||||||
|
packages/lucide-svelte/src/icons/*.svelte
|
||||||
|
packages/lucide-svelte/.svelte-kit
|
||||||
@@ -50,7 +50,7 @@ Seperate them by two PRs; 'pr-01' `arrow`, `arrow-down` and 'pr-02' `bicycle`.
|
|||||||
|
|
||||||
Before creating an icon request, please search to see if someone has requested the icon already. If there is an open request, please add a :+1:.
|
Before creating an icon request, please search to see if someone has requested the icon already. If there is an open request, please add a :+1:.
|
||||||
|
|
||||||
If the icon has not already been requested, [create an issue](https://github.com/lucide-icons/lucide/issues/new?title=Icon%20Request:) with a title of `Icon request: <icon name>` and add as much information as possible.
|
If the icon has not already been requested, [create an icon request issue](https://github.com/lucide-icons/lucide/issues/new?assignees=&labels=%F0%9F%99%8C+icon+request&projects=&template=01_icon_request.yml) and add as much information as possible.
|
||||||
|
|
||||||
### Icon Requests from Feather
|
### Icon Requests from Feather
|
||||||
|
|
||||||
@@ -72,8 +72,8 @@ pnpm install # Install dependencies, including the workspace packages
|
|||||||
|
|
||||||
To distribute different packages we use PNPM workspaces. Before you start make sure you are familiar with this concept. The concept of working in workspaces is created by Yarn, they have a well written introduction: [yarn workspaces](https://classic.yarnpkg.com/lang/enhttps://lucide.dev/docs/workspaces).
|
To distribute different packages we use PNPM workspaces. Before you start make sure you are familiar with this concept. The concept of working in workspaces is created by Yarn, they have a well written introduction: [yarn workspaces](https://classic.yarnpkg.com/lang/enhttps://lucide.dev/docs/workspaces).
|
||||||
|
|
||||||
The configured directory for workspaces is the [packages](./packages) directory, located in the root directory. There you will find all the current packages from lucide.
|
The configured directory for workspaces is the [packages](https://github.com/lucide-icons/lucide/tree/main/packages) directory, located in the root directory. There you will find all the current packages from lucide.
|
||||||
There are more workspaces defined, see [`pnpm-workspace.yaml`](./pnpm-workspace.yaml).
|
There are more workspaces defined, see [`pnpm-workspace.yaml`](https://github.com/lucide-icons/lucide/blob/main/pnpm-workspace.yaml).
|
||||||
|
|
||||||
> Note: One package is not managed by pnpm: **lucide-flutter**, this package is written in Dart and used pub for publishing.
|
> Note: One package is not managed by pnpm: **lucide-flutter**, this package is written in Dart and used pub for publishing.
|
||||||
|
|
||||||
@@ -144,16 +144,19 @@ Root directories
|
|||||||
|
|
||||||
```sh
|
```sh
|
||||||
lucide
|
lucide
|
||||||
|
|
|
||||||
├── docs
|
├── docs
|
||||||
|
│ ├── guide
|
||||||
├── icons
|
├── icons
|
||||||
├── packages
|
├── packages
|
||||||
├── scripts
|
└── scripts
|
||||||
└── site
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Docs
|
### Docs
|
||||||
|
|
||||||
|
The lucide.dev website is using [vitepress](https://vitepress.dev/) to generate the static website. The markdown files are located in the docs directory.
|
||||||
|
|
||||||
|
### Guides
|
||||||
|
|
||||||
Detailed documentation about: installation, guides, packages, design guides etc.
|
Detailed documentation about: installation, guides, packages, design guides etc.
|
||||||
|
|
||||||
### Icons
|
### Icons
|
||||||
@@ -170,10 +173,6 @@ Includes all the (npm) packages of lucide.
|
|||||||
|
|
||||||
Includes usefully scripts to automate certain jobs. Big part of the scripts is the template generation, for example it generates icon components for all the packages. These scripts are usually executed from the "scripts" section in the package.json.
|
Includes usefully scripts to automate certain jobs. Big part of the scripts is the template generation, for example it generates icon components for all the packages. These scripts are usually executed from the "scripts" section in the package.json.
|
||||||
|
|
||||||
### site
|
|
||||||
|
|
||||||
The lucide.dev website is using [vitepress](https://vitepress.dev/) to generate the static website. The markdown files are located in the docs directory.
|
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
The documentation files are located in the [docs](https://github.com/lucide-icons/lucide/tree/main/docs) directory. All these markdown files will be loaded in the build of the lucide.dev website.
|
The documentation files are located in the [docs](https://github.com/lucide-icons/lucide/tree/main/docs) directory. All these markdown files will be loaded in the build of the lucide.dev website.
|
||||||
|
|||||||
@@ -74,10 +74,6 @@ const sidebar: UserConfig<DefaultTheme.Config>['themeConfig']['sidebar'] = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: 'Lucide Vue',
|
text: 'Lucide Vue',
|
||||||
link: '/guide/packages/lucide-vue'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: 'Lucide Vue Next (Vue 3)',
|
|
||||||
link: '/guide/packages/lucide-vue-next'
|
link: '/guide/packages/lucide-vue-next'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -100,10 +96,6 @@ const sidebar: UserConfig<DefaultTheme.Config>['themeConfig']['sidebar'] = {
|
|||||||
text: 'Lucide Static',
|
text: 'Lucide Static',
|
||||||
link: '/guide/packages/lucide-static'
|
link: '/guide/packages/lucide-static'
|
||||||
},
|
},
|
||||||
{
|
|
||||||
text: 'Lucide Flutter',
|
|
||||||
link: '/guide/packages/lucide-flutter'
|
|
||||||
},
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,8 +9,6 @@ const props = defineProps<{
|
|||||||
}>()
|
}>()
|
||||||
|
|
||||||
const component = computed(() => props.href ? 'a' : 'div')
|
const component = computed(() => props.href ? 'a' : 'div')
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -25,7 +23,7 @@ const component = computed(() => props.href ? 'a' : 'div')
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.badge, a.badge {
|
.badge, a.badge, .vp-doc a.badge {
|
||||||
display: block;
|
display: block;
|
||||||
border: 1px solid transparent;
|
border: 1px solid transparent;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
@@ -60,4 +58,6 @@ const component = computed(() => props.href ? 'a' : 'div')
|
|||||||
/* color: var(--vp-button-alt-active-text);
|
/* color: var(--vp-button-alt-active-text);
|
||||||
background-color: var(--vp-button-alt-active-bg); */
|
background-color: var(--vp-button-alt-active-bg); */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -94,8 +94,7 @@ const ChevronUp = createLucideIcon('ChevronUp', chevronUp)
|
|||||||
.menu {
|
.menu {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
.menu-items {
|
ul.menu-items {
|
||||||
--menu-offset: 44px;
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@@ -103,7 +102,7 @@ const ChevronUp = createLucideIcon('ChevronUp', chevronUp)
|
|||||||
padding: 12px;
|
padding: 12px;
|
||||||
min-width: 128px;
|
min-width: 128px;
|
||||||
border: 1px solid var(--vp-c-divider);
|
border: 1px solid var(--vp-c-divider);
|
||||||
background-color: var(--vp-c-bg);
|
background-color: var(--vp-c-bg-elv);
|
||||||
box-shadow: var(--vp-shadow-3);
|
box-shadow: var(--vp-shadow-3);
|
||||||
transition: background-color 0.5s;
|
transition: background-color 0.5s;
|
||||||
max-height: calc(100vh - var(--vp-nav-height));
|
max-height: calc(100vh - var(--vp-nav-height));
|
||||||
@@ -124,11 +123,12 @@ const ChevronUp = createLucideIcon('ChevronUp', chevronUp)
|
|||||||
color: var(--vp-c-text-1);
|
color: var(--vp-c-text-1);
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
transition: background-color .25s,color .25s;
|
transition: background-color .25s,color .25s;
|
||||||
|
list-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu-item:hover {
|
.menu-item:hover {
|
||||||
color: var(--vp-c-brand);
|
color: var(--vp-c-brand);
|
||||||
background-color: var(--vp-c-bg-elv-mute);
|
background-color: var(--vp-c-default-soft);
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu-item:active {
|
.menu-item:active {
|
||||||
@@ -170,11 +170,11 @@ const ChevronUp = createLucideIcon('ChevronUp', chevronUp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
.menu-items.bottom {
|
.menu-items.bottom {
|
||||||
top: var(--menu-offset);
|
top: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu-items.top {
|
.menu-items.top {
|
||||||
bottom: var(--menu-offset);
|
bottom: 48px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.arrow-up-button.top::before {
|
.arrow-up-button.top::before {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { computed, defineProps, onMounted } from 'vue'
|
import { computed, onMounted } from 'vue'
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
groups: string[] | undefined,
|
groups: string[] | undefined,
|
||||||
groupName: string,
|
groupName: string,
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ const SearchIcon = createLucideIcon('search', search)
|
|||||||
background: var(--vp-c-bg-soft);
|
background: var(--vp-c-bg-soft);
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
color: var(--vp-c-text-2);
|
color: var(--vp-c-text-2);
|
||||||
padding: 12px 16px;
|
padding: 11px 16px;
|
||||||
height: auto;
|
height: auto;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
/* box-shadow: var(--vp-shadow-4), var(--vp-shadow-2); */
|
/* box-shadow: var(--vp-shadow-4), var(--vp-shadow-2); */
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { onMounted } from 'vue';
|
|
||||||
import { useCategoryView } from '../../composables/useCategoryView';
|
import { useCategoryView } from '../../composables/useCategoryView';
|
||||||
|
|
||||||
interface Header {
|
interface Header {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { computed, ref } from 'vue';
|
import { computed } from 'vue';
|
||||||
import { startCase, camelCase } from 'lodash-es'
|
import { startCase, camelCase } from 'lodash-es'
|
||||||
import ButtonMenu from '../base/ButtonMenu.vue'
|
import ButtonMenu from '../base/ButtonMenu.vue'
|
||||||
import { useIconStyleContext } from '../../composables/useIconStyle';
|
import { useIconStyleContext } from '../../composables/useIconStyle';
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import type { IconEntity } from '../../types'
|
import type { IconEntity } from '../../types'
|
||||||
import { computed, ref, watch } from 'vue'
|
import { computed } from 'vue'
|
||||||
import createLucideIcon from 'lucide-vue-next/src/createLucideIcon';
|
import createLucideIcon from 'lucide-vue-next/src/createLucideIcon';
|
||||||
import IconButton from '../base/IconButton.vue';
|
import IconButton from '../base/IconButton.vue';
|
||||||
import IconContributors from './IconContributors.vue';
|
import IconContributors from './IconContributors.vue';
|
||||||
|
|||||||
@@ -19,7 +19,11 @@ function setActiveIcon(name: string) {
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="icons">
|
<div class="icons">
|
||||||
<div class="icon" v-for="icon in icons" :key="icon.name">
|
<div
|
||||||
|
class="icon"
|
||||||
|
v-for="icon in icons"
|
||||||
|
:key="icon.name"
|
||||||
|
>
|
||||||
<IconItem
|
<IconItem
|
||||||
v-bind="icon"
|
v-bind="icon"
|
||||||
@setActiveIcon="setActiveIcon(icon.name)"
|
@setActiveIcon="setActiveIcon(icon.name)"
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { computed } from 'vue';
|
||||||
import createLucideIcon from 'lucide-vue-next/src/createLucideIcon';
|
import createLucideIcon from 'lucide-vue-next/src/createLucideIcon';
|
||||||
import { useMediaQuery } from '@vueuse/core';
|
import { useMediaQuery } from '@vueuse/core';
|
||||||
import { useRouter } from 'vitepress';
|
import { useRouter } from 'vitepress';
|
||||||
@@ -27,7 +28,10 @@ const showOverlay = useMediaQuery('(min-width: 860px)');
|
|||||||
const { animate, confetti, confettiText } = useConfetti()
|
const { animate, confetti, confettiText } = useConfetti()
|
||||||
|
|
||||||
|
|
||||||
const icon = createLucideIcon(props.name, props.iconNode)
|
const icon = computed(() => {
|
||||||
|
if (!props.name || !props.iconNode) return null
|
||||||
|
return createLucideIcon(props.name, props.iconNode)
|
||||||
|
})
|
||||||
|
|
||||||
async function navigateToIcon(event) {
|
async function navigateToIcon(event) {
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import InputSearch from '../base/InputSearch.vue';
|
|||||||
import useSearchInput from '../../composables/useSearchInput';
|
import useSearchInput from '../../composables/useSearchInput';
|
||||||
import StickyBar from './StickyBar.vue';
|
import StickyBar from './StickyBar.vue';
|
||||||
import IconsCategory from './IconsCategory.vue';
|
import IconsCategory from './IconsCategory.vue';
|
||||||
import { useFetch } from '@vueuse/core';
|
|
||||||
import useFetchTags from '../../composables/useFetchTags';
|
import useFetchTags from '../../composables/useFetchTags';
|
||||||
import useFetchCategories from '../../composables/useFetchCategories';
|
import useFetchCategories from '../../composables/useFetchCategories';
|
||||||
|
|
||||||
|
|||||||
@@ -3,12 +3,8 @@ import { nextTick, onMounted, ref, watch } from 'vue';
|
|||||||
|
|
||||||
const useSearchInput = () => {
|
const useSearchInput = () => {
|
||||||
const searchInput = ref();
|
const searchInput = ref();
|
||||||
const searchQuery = ref(
|
const searchQuery = ref<string>('');
|
||||||
typeof window === 'undefined'
|
const searchQueryDebounced = useDebounce<string>(searchQuery, 200);
|
||||||
? ''
|
|
||||||
: new URLSearchParams(window.location.search).get('search') || ''
|
|
||||||
);
|
|
||||||
const searchQueryDebounced = useDebounce(searchQuery, 250);
|
|
||||||
|
|
||||||
watch(searchQueryDebounced, (searchString) => {
|
watch(searchQueryDebounced, (searchString) => {
|
||||||
const newUrl = new URL(window.location.href);
|
const newUrl = new URL(window.location.href);
|
||||||
@@ -26,6 +22,11 @@ const useSearchInput = () => {
|
|||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
const searchParams = new URLSearchParams(window.location.search);
|
const searchParams = new URLSearchParams(window.location.search);
|
||||||
|
|
||||||
|
if (searchParams.has('search')) {
|
||||||
|
searchQuery.value = searchParams.get('search');
|
||||||
|
}
|
||||||
|
|
||||||
if (searchParams.has('focus')) {
|
if (searchParams.has('focus')) {
|
||||||
searchInput.value.focus();
|
searchInput.value.focus();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,6 @@
|
|||||||
.app {
|
.app {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr 1fr 1fr;
|
grid-template-columns: 1fr 1fr 1fr;
|
||||||
grid-template-rows: 1fr 1fr 1fr
|
grid-template-rows: 1fr 1fr 1fr;
|
||||||
gap: 6px;
|
gap: 6px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,6 @@
|
|||||||
.app {
|
.app {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr 1fr 1fr;
|
grid-template-columns: 1fr 1fr 1fr;
|
||||||
grid-template-rows: 1fr 1fr 1fr
|
grid-template-rows: 1fr 1fr 1fr;
|
||||||
gap: 6px;
|
gap: 6px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ The example below imports all ES Modules, so exercise caution when using it. Imp
|
|||||||
### Icon Component Example
|
### Icon Component Example
|
||||||
|
|
||||||
```jsx
|
```jsx
|
||||||
import { icons } from 'lucide-react';
|
import { icons } from 'lucide-react-native';
|
||||||
|
|
||||||
const Icon = ({ name, color, size }) => {
|
const Icon = ({ name, color, size }) => {
|
||||||
const LucideIcon = icons[name];
|
const LucideIcon = icons[name];
|
||||||
|
|||||||
@@ -109,7 +109,8 @@ Example with React suspense:
|
|||||||
|
|
||||||
```tsx
|
```tsx
|
||||||
import React, { lazy, Suspense } from 'react';
|
import React, { lazy, Suspense } from 'react';
|
||||||
import { dynamicIconImports, LucideProps } from 'lucide-react';
|
import { LucideProps } from 'lucide-react';
|
||||||
|
import dynamicIconImports from 'lucide-react/dynamicIconImports';
|
||||||
|
|
||||||
const fallback = <div style={{ background: '#ddd', width: 24, height: 24 }}/>
|
const fallback = <div style={{ background: '#ddd', width: 24, height: 24 }}/>
|
||||||
|
|
||||||
|
|||||||
@@ -48,14 +48,24 @@ Additional props can be passed to adjust the icon:
|
|||||||
<Camera color="#ff3e98" />
|
<Camera color="#ff3e98" />
|
||||||
```
|
```
|
||||||
|
|
||||||
|
For faster builds and load times, you can import icons directly from the `lucide-svelte/icons` directory:
|
||||||
|
|
||||||
|
```svelte
|
||||||
|
<script>
|
||||||
|
import AlertCircle from 'lucide-svelte/icons/alert-circle';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<AlertCircle color="#ff3e98" />
|
||||||
|
```
|
||||||
|
|
||||||
## Props
|
## Props
|
||||||
|
|
||||||
| name | type | default |
|
| name | type | default |
|
||||||
| --------------------- | --------- | ------------ |
|
| --------------------- | --------- | ------------ |
|
||||||
| `size` | *number* | 24 |
|
| `size` | _number_ | 24 |
|
||||||
| `color` | *string* | currentColor |
|
| `color` | _string_ | currentColor |
|
||||||
| `strokeWidth` | *number* | 2 |
|
| `strokeWidth` | _number_ | 2 |
|
||||||
| `absoluteStrokeWidth` | *boolean* | false |
|
| `absoluteStrokeWidth` | _boolean_ | false |
|
||||||
|
|
||||||
### Applying props
|
### Applying props
|
||||||
|
|
||||||
@@ -71,6 +81,91 @@ To customize the appearance of an icon, you can pass custom properties as props
|
|||||||
|
|
||||||
This results a filled phone icon.
|
This results a filled phone icon.
|
||||||
|
|
||||||
|
## Types
|
||||||
|
|
||||||
|
The package includes type definitions for all icons. This is useful if you want to dynamically load icons with the `svelte:component` directive whether you are using TypeScript or JSDoc.
|
||||||
|
|
||||||
|
### TypeScript Example
|
||||||
|
|
||||||
|
```svelte
|
||||||
|
<script lang="ts">
|
||||||
|
import Home from 'lucide-svelte/icons/home';
|
||||||
|
import Library from 'lucide-svelte/icons/library';
|
||||||
|
import Cog from 'lucide-svelte/icons/cog';
|
||||||
|
import type { ComponentType } from 'svelte';
|
||||||
|
import type { Icon } from 'lucide-svelte';
|
||||||
|
|
||||||
|
type MenuItem = {
|
||||||
|
name: string;
|
||||||
|
href: string;
|
||||||
|
icon: ComponentType<Icon>;
|
||||||
|
}
|
||||||
|
|
||||||
|
const menuItems: MenuItem[] = [
|
||||||
|
{
|
||||||
|
name: 'Home',
|
||||||
|
href: '/',
|
||||||
|
icon: Home,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Blog',
|
||||||
|
href: '/blog',
|
||||||
|
icon: Library,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Projects',
|
||||||
|
href: '/projects',
|
||||||
|
icon: Cog,
|
||||||
|
}
|
||||||
|
];
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#each menuItems as item}
|
||||||
|
<a href={item.href}>
|
||||||
|
<svelte:component this={item.icon} />
|
||||||
|
<span>{item.name}</span>
|
||||||
|
</a>
|
||||||
|
{/each}
|
||||||
|
```
|
||||||
|
|
||||||
|
### JSDoc Example
|
||||||
|
|
||||||
|
```svelte
|
||||||
|
<script>
|
||||||
|
import Home from 'lucide-svelte/icons/home';
|
||||||
|
import Library from 'lucide-svelte/icons/library';
|
||||||
|
import Cog from 'lucide-svelte/icons/cog';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {Object} MenuItem
|
||||||
|
* @property {string} name
|
||||||
|
* @property {string} href
|
||||||
|
* @property {import('svelte').ComponentType<import('lucide-svelte').Icon>} icon
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @type {MenuItem[]} */
|
||||||
|
const menuItems = [
|
||||||
|
{
|
||||||
|
name: 'Home',
|
||||||
|
href: '/',
|
||||||
|
icon: Home,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Blog',
|
||||||
|
href: '/blog',
|
||||||
|
icon: Library,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Projects',
|
||||||
|
href: '/projects',
|
||||||
|
icon: Cog,
|
||||||
|
}
|
||||||
|
];
|
||||||
|
</script>
|
||||||
|
```
|
||||||
|
|
||||||
|
For more details about typing the `svelte:component` directive, see the [Svelte documentation](https://svelte.dev/docs/typescript#types-componenttype).
|
||||||
|
|
||||||
## One generic icon component
|
## One generic icon component
|
||||||
|
|
||||||
It is possible to create one generic icon component to load icons, but it is not recommended.
|
It is possible to create one generic icon component to load icons, but it is not recommended.
|
||||||
@@ -99,4 +194,3 @@ The example below imports all ES Modules, so exercise caution when using it. Imp
|
|||||||
|
|
||||||
<LucideIcon name="Menu" />
|
<LucideIcon name="Menu" />
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
---
|
---
|
||||||
aside: false
|
aside: false
|
||||||
|
editLink: false
|
||||||
---
|
---
|
||||||
|
|
||||||
# Lucide License
|
# Lucide License
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import copy from 'rollup-plugin-copy';
|
|||||||
import replace from '@rollup/plugin-replace';
|
import replace from '@rollup/plugin-replace';
|
||||||
|
|
||||||
export default defineNitroConfig({
|
export default defineNitroConfig({
|
||||||
preset: 'vercel-edge',
|
preset: 'vercel_edge',
|
||||||
srcDir: '.vitepress',
|
srcDir: '.vitepress',
|
||||||
routeRules: {
|
routeRules: {
|
||||||
'/api/**': { cors: false },
|
'/api/**': { cors: false },
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1",
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
"docs:dev": "pnpm prebuild && vitepress dev",
|
"docs:dev": "pnpm run /^prebuild:.*/ && vitepress dev",
|
||||||
"docs:build": "vitepress build",
|
"docs:build": "pnpm run /^prebuild:.*/ && vitepress build",
|
||||||
"docs:preview": "vitepress preview",
|
"docs:preview": "vitepress preview",
|
||||||
"build:docs": "vitepress build",
|
"build:docs": "vitepress build",
|
||||||
"prebuild:iconNodes": "node ../scripts/writeIconNodes.mjs",
|
"prebuild:iconNodes": "node ../scripts/writeIconNodes.mjs",
|
||||||
@@ -16,9 +16,9 @@
|
|||||||
"prebuild:iconDetails": "node ../scripts/writeIconDetails.mjs",
|
"prebuild:iconDetails": "node ../scripts/writeIconDetails.mjs",
|
||||||
"postbuild:vercelJson": "node ../scripts/writeVercelOutput.mjs",
|
"postbuild:vercelJson": "node ../scripts/writeVercelOutput.mjs",
|
||||||
"dev": "npx nitropack dev",
|
"dev": "npx nitropack dev",
|
||||||
|
"prebuild:api": "npx nitropack prepare",
|
||||||
"build:api": "npx nitropack build",
|
"build:api": "npx nitropack build",
|
||||||
"prebuild": "pnpm prebuild:iconNodes && pnpm prebuild:metaJson && pnpm prebuild:releaseJson && pnpm prebuild:relatedIcons && pnpm prebuild:iconDetails",
|
"build": "pnpm run /^prebuild:.*/ && pnpm run /^build:.*/ && pnpm postbuild:vercelJson",
|
||||||
"build": "pnpm prebuild && pnpm build:api && pnpm build:docs && pnpm postbuild:vercelJson",
|
|
||||||
"preview": "node .output/server/index.mjs"
|
"preview": "node .output/server/index.mjs"
|
||||||
},
|
},
|
||||||
"author": "Eric Fennis",
|
"author": "Eric Fennis",
|
||||||
@@ -27,17 +27,17 @@
|
|||||||
"@rollup/plugin-replace": "^5.0.2",
|
"@rollup/plugin-replace": "^5.0.2",
|
||||||
"@types/semver": "^7.5.3",
|
"@types/semver": "^7.5.3",
|
||||||
"h3": "^1.8.0",
|
"h3": "^1.8.0",
|
||||||
"nitropack": "npm:nitropack-edge@latest",
|
"nitropack": "2.8.1",
|
||||||
"node-fetch": "2",
|
"node-fetch": "2",
|
||||||
"rollup-plugin-copy": "^3.4.0",
|
"rollup-plugin-copy": "^3.4.0",
|
||||||
"vitepress": "1.0.0-rc.30"
|
"vitepress": "1.0.0-rc.36"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@floating-ui/vue": "^1.0.1",
|
"@floating-ui/vue": "^1.0.3",
|
||||||
"@headlessui/vue": "^1.7.13",
|
"@headlessui/vue": "^1.7.17",
|
||||||
"@resvg/resvg-wasm": "^2.4.1",
|
"@resvg/resvg-wasm": "^2.4.1",
|
||||||
"@vueuse/components": "^10.1.0",
|
"@vueuse/components": "^10.7.2",
|
||||||
"@vueuse/core": "^10.1.0",
|
"@vueuse/core": "^10.7.2",
|
||||||
"element-to-path": "^1.2.1",
|
"element-to-path": "^1.2.1",
|
||||||
"fuse.js": "^6.5.3",
|
"fuse.js": "^6.5.3",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
@@ -48,13 +48,13 @@
|
|||||||
"lucide-vue-next": "workspace:*",
|
"lucide-vue-next": "workspace:*",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
"sandpack-vue3": "^3.1.6",
|
"sandpack-vue3": "3.1.8",
|
||||||
"semver": "^7.5.2",
|
"semver": "^7.5.2",
|
||||||
"shikiji": "^0.7.4",
|
"shikiji": "^0.7.4",
|
||||||
"simple-git": "^3.18.0",
|
"simple-git": "^3.18.0",
|
||||||
"sitemap": "^7.1.1",
|
"sitemap": "^7.1.1",
|
||||||
"svg-pathdata": "^6.0.3",
|
"svg-pathdata": "^6.0.3",
|
||||||
"svgson": "^5.2.1",
|
"svgson": "^5.2.1",
|
||||||
"vue": "^3.2.47"
|
"vue": "^3.4.13"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,5 +35,16 @@
|
|||||||
"destination": "/icons",
|
"destination": "/icons",
|
||||||
"permanent": false
|
"permanent": false
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"headers": [
|
||||||
|
{
|
||||||
|
"source": "/assets/:path*",
|
||||||
|
"headers": [
|
||||||
|
{
|
||||||
|
"key": "Cache-Control",
|
||||||
|
"value": "cache-control: public, max-age=31536000, immutable"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,6 +47,10 @@
|
|||||||
},
|
},
|
||||||
"minItems": 1,
|
"minItems": 1,
|
||||||
"uniqueItems": true
|
"uniqueItems": true
|
||||||
|
},
|
||||||
|
"deprecated": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"description": "A JSON Schema for icons defined by Lucide Icons."
|
"description": "A JSON Schema for icons defined by Lucide Icons."
|
||||||
|
|||||||
@@ -6,7 +6,10 @@
|
|||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"camera",
|
"camera",
|
||||||
"photo"
|
"photo",
|
||||||
|
"pictures",
|
||||||
|
"shutter",
|
||||||
|
"exposure"
|
||||||
],
|
],
|
||||||
"categories": [
|
"categories": [
|
||||||
"photography"
|
"photography"
|
||||||
|
|||||||
@@ -10,10 +10,10 @@
|
|||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<circle cx="12" cy="12" r="10" />
|
<circle cx="12" cy="12" r="10" />
|
||||||
<line x1="14.31" x2="20.05" y1="8" y2="17.94" />
|
<path d="m14.31 8 5.74 9.94" />
|
||||||
<line x1="9.69" x2="21.17" y1="8" y2="8" />
|
<path d="M9.69 8h11.48" />
|
||||||
<line x1="7.38" x2="13.12" y1="12" y2="2.06" />
|
<path d="m7.38 12 5.74-9.94" />
|
||||||
<line x1="9.69" x2="3.95" y1="16" y2="6.06" />
|
<path d="M9.69 16 3.95 6.06" />
|
||||||
<line x1="14.31" x2="2.83" y1="16" y2="16" />
|
<path d="M14.31 16H2.83" />
|
||||||
<line x1="16.62" x2="10.88" y1="12" y2="21.94" />
|
<path d="m16.62 12-5.74 9.94" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 540 B After Width: | Height: | Size: 440 B |
16
icons/arrow-down-left-from-square.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"danielbayley"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"outwards",
|
||||||
|
"direction",
|
||||||
|
"south-west",
|
||||||
|
"diagonal"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"arrows",
|
||||||
|
"navigation"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -9,6 +9,7 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M8.4 10.6a2.1 2.1 0 1 1 2.99 2.98L6 19l-4 1 1-3.9Z" />
|
<path d="M13 21h6a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v6" />
|
||||||
<path d="M2 11.5V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-9.5" />
|
<path d="m3 21 9-9" />
|
||||||
|
<path d="M9 21H3v-6" />
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 398 B After Width: | Height: | Size: 331 B |
16
icons/arrow-down-right-from-square.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"danielbayley"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"outwards",
|
||||||
|
"direction",
|
||||||
|
"south-east",
|
||||||
|
"diagonal"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"arrows",
|
||||||
|
"navigation"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M4 13.5V4a2 2 0 0 1 2-2h8.5L20 7.5V20a2 2 0 0 1-2 2h-5.5" />
|
<path d="M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6" />
|
||||||
<polyline points="14 2 14 8 20 8" />
|
<path d="m21 21-9-9" />
|
||||||
<path d="M10.42 12.61a2.1 2.1 0 1 1 2.97 2.97L7.95 21 4 22l.99-3.95 5.43-5.44Z" />
|
<path d="M21 15v6h-6" />
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 404 B After Width: | Height: | Size: 334 B |
16
icons/arrow-up-left-from-square.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"danielbayley"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"outwards",
|
||||||
|
"direction",
|
||||||
|
"north-west",
|
||||||
|
"diagonal"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"arrows",
|
||||||
|
"navigation"
|
||||||
|
]
|
||||||
|
}
|
||||||
15
icons/arrow-up-left-from-square.svg
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="M13 3h6a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-6" />
|
||||||
|
<path d="m3 3 9 9" />
|
||||||
|
<path d="M3 9V3h6" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 329 B |
20
icons/arrow-up-right-from-square.json
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"danielbayley"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"outwards",
|
||||||
|
"direction",
|
||||||
|
"north-east",
|
||||||
|
"diagonal",
|
||||||
|
"share",
|
||||||
|
"open",
|
||||||
|
"external"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"arrows",
|
||||||
|
"navigation",
|
||||||
|
"social"
|
||||||
|
]
|
||||||
|
}
|
||||||
15
icons/arrow-up-right-from-square.svg
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6" />
|
||||||
|
<path d="m21 3-9 9" />
|
||||||
|
<path d="M15 3h6v6" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 330 B |
@@ -20,5 +20,8 @@
|
|||||||
"account",
|
"account",
|
||||||
"maths",
|
"maths",
|
||||||
"development"
|
"development"
|
||||||
|
],
|
||||||
|
"aliases": [
|
||||||
|
"square-asterisk"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 338 B After Width: | Height: | Size: 338 B |
38
icons/between-horizontal-end.json
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"danielbayley"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"insert",
|
||||||
|
"add",
|
||||||
|
"left",
|
||||||
|
"slot",
|
||||||
|
"squeeze",
|
||||||
|
"space",
|
||||||
|
"vertical",
|
||||||
|
"grid",
|
||||||
|
"table",
|
||||||
|
"rows",
|
||||||
|
"cells",
|
||||||
|
"excel",
|
||||||
|
"spreadsheet",
|
||||||
|
"accountancy",
|
||||||
|
"data",
|
||||||
|
"enter",
|
||||||
|
"entry",
|
||||||
|
"entries",
|
||||||
|
"blocks",
|
||||||
|
"rectangles",
|
||||||
|
"chevron"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"layout",
|
||||||
|
"design",
|
||||||
|
"tools",
|
||||||
|
"account"
|
||||||
|
],
|
||||||
|
"aliases": [
|
||||||
|
"between-horizonal-end"
|
||||||
|
]
|
||||||
|
}
|
||||||
15
icons/between-horizontal-end.svg
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<rect width="13" height="7" x="3" y="3" rx="1" />
|
||||||
|
<path d="m22 15-3-3 3-3" />
|
||||||
|
<rect width="13" height="7" x="3" y="14" rx="1" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 343 B |
38
icons/between-horizontal-start.json
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"danielbayley"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"insert",
|
||||||
|
"add",
|
||||||
|
"right",
|
||||||
|
"slot",
|
||||||
|
"squeeze",
|
||||||
|
"space",
|
||||||
|
"vertical",
|
||||||
|
"grid",
|
||||||
|
"table",
|
||||||
|
"rows",
|
||||||
|
"cells",
|
||||||
|
"excel",
|
||||||
|
"spreadsheet",
|
||||||
|
"accountancy",
|
||||||
|
"data",
|
||||||
|
"enter",
|
||||||
|
"entry",
|
||||||
|
"entries",
|
||||||
|
"blocks",
|
||||||
|
"rectangles",
|
||||||
|
"chevron"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"layout",
|
||||||
|
"design",
|
||||||
|
"tools",
|
||||||
|
"account"
|
||||||
|
],
|
||||||
|
"aliases": [
|
||||||
|
"between-horizonal-start"
|
||||||
|
]
|
||||||
|
}
|
||||||
15
icons/between-horizontal-start.svg
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<rect width="13" height="7" x="8" y="3" rx="1" />
|
||||||
|
<path d="m2 9 3 3-3 3" />
|
||||||
|
<rect width="13" height="7" x="8" y="14" rx="1" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 341 B |
31
icons/between-vertical-end.json
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"danielbayley"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"insert",
|
||||||
|
"add",
|
||||||
|
"top",
|
||||||
|
"slot",
|
||||||
|
"squeeze",
|
||||||
|
"space",
|
||||||
|
"vertical",
|
||||||
|
"grid",
|
||||||
|
"table",
|
||||||
|
"columns",
|
||||||
|
"cells",
|
||||||
|
"data",
|
||||||
|
"enter",
|
||||||
|
"entry",
|
||||||
|
"entries",
|
||||||
|
"blocks",
|
||||||
|
"rectangles",
|
||||||
|
"chevron"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"layout",
|
||||||
|
"design",
|
||||||
|
"tools"
|
||||||
|
]
|
||||||
|
}
|
||||||
15
icons/between-vertical-end.svg
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<rect width="7" height="13" x="3" y="3" rx="1" />
|
||||||
|
<path d="m9 22 3-3 3 3" />
|
||||||
|
<rect width="7" height="13" x="14" y="3" rx="1" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 342 B |
31
icons/between-vertical-start.json
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"danielbayley"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"insert",
|
||||||
|
"add",
|
||||||
|
"bottom",
|
||||||
|
"slot",
|
||||||
|
"squeeze",
|
||||||
|
"space",
|
||||||
|
"vertical",
|
||||||
|
"grid",
|
||||||
|
"table",
|
||||||
|
"columns",
|
||||||
|
"cells",
|
||||||
|
"data",
|
||||||
|
"enter",
|
||||||
|
"entry",
|
||||||
|
"entries",
|
||||||
|
"blocks",
|
||||||
|
"rectangles",
|
||||||
|
"chevron"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"layout",
|
||||||
|
"design",
|
||||||
|
"tools"
|
||||||
|
]
|
||||||
|
}
|
||||||
15
icons/between-vertical-start.svg
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<rect width="7" height="13" x="3" y="8" rx="1" />
|
||||||
|
<path d="m15 2-3 3-3-3" />
|
||||||
|
<rect width="7" height="13" x="14" y="8" rx="1" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 342 B |
32
icons/blend.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"danielbayley"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"mode",
|
||||||
|
"overlay",
|
||||||
|
"multiply",
|
||||||
|
"screen",
|
||||||
|
"opacity",
|
||||||
|
"transparency",
|
||||||
|
"alpha",
|
||||||
|
"filters",
|
||||||
|
"lenses",
|
||||||
|
"mixed",
|
||||||
|
"shades",
|
||||||
|
"tints",
|
||||||
|
"hues",
|
||||||
|
"saturation",
|
||||||
|
"brightness",
|
||||||
|
"overlap",
|
||||||
|
"colors",
|
||||||
|
"colours"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"design",
|
||||||
|
"photography",
|
||||||
|
"tools",
|
||||||
|
"development"
|
||||||
|
]
|
||||||
|
}
|
||||||
14
icons/blend.svg
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<circle cx="9" cy="9" r="7" />
|
||||||
|
<circle cx="15" cy="15" r="7" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 276 B |
22
icons/bolt.json
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"tags": [
|
||||||
|
"nut",
|
||||||
|
"screw",
|
||||||
|
"settings",
|
||||||
|
"preferences",
|
||||||
|
"configuration",
|
||||||
|
"controls",
|
||||||
|
"edit",
|
||||||
|
"diy",
|
||||||
|
"fixed",
|
||||||
|
"build",
|
||||||
|
"contruction",
|
||||||
|
"parts"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"account",
|
||||||
|
"tools",
|
||||||
|
"home"
|
||||||
|
]
|
||||||
|
}
|
||||||
14
icons/bolt.svg
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z" />
|
||||||
|
<circle cx="12" cy="12" r="4" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 380 B |
@@ -6,7 +6,8 @@
|
|||||||
"tags": [
|
"tags": [
|
||||||
"draw",
|
"draw",
|
||||||
"paint",
|
"paint",
|
||||||
"color"
|
"color",
|
||||||
|
"artist"
|
||||||
],
|
],
|
||||||
"categories": [
|
"categories": [
|
||||||
"text",
|
"text",
|
||||||
|
|||||||
@@ -6,10 +6,13 @@
|
|||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"date",
|
"date",
|
||||||
"time",
|
"day",
|
||||||
|
"month",
|
||||||
|
"year",
|
||||||
"event",
|
"event",
|
||||||
"confirm",
|
"confirm",
|
||||||
"subscribe",
|
"subscribe",
|
||||||
|
"schedule",
|
||||||
"done",
|
"done",
|
||||||
"todo",
|
"todo",
|
||||||
"tick",
|
"tick",
|
||||||
|
|||||||
@@ -9,9 +9,9 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
|
<path d="M8 2v4" />
|
||||||
|
<path d="M16 2v4" />
|
||||||
<path d="M21 14V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8" />
|
<path d="M21 14V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8" />
|
||||||
<line x1="16" x2="16" y1="2" y2="6" />
|
<path d="M3 10h18" />
|
||||||
<line x1="8" x2="8" y1="2" y2="6" />
|
|
||||||
<line x1="3" x2="21" y1="10" y2="10" />
|
|
||||||
<path d="m16 20 2 2 4-4" />
|
<path d="m16 20 2 2 4-4" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 433 B After Width: | Height: | Size: 380 B |
@@ -6,7 +6,9 @@
|
|||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"date",
|
"date",
|
||||||
"time",
|
"day",
|
||||||
|
"month",
|
||||||
|
"year",
|
||||||
"event",
|
"event",
|
||||||
"confirm",
|
"confirm",
|
||||||
"subscribe",
|
"subscribe",
|
||||||
|
|||||||
@@ -9,9 +9,9 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<rect width="18" height="18" x="3" y="4" rx="2" ry="2" />
|
<path d="M8 2v4" />
|
||||||
<line x1="16" x2="16" y1="2" y2="6" />
|
<path d="M16 2v4" />
|
||||||
<line x1="8" x2="8" y1="2" y2="6" />
|
<rect width="18" height="18" x="3" y="4" rx="2" />
|
||||||
<line x1="3" x2="21" y1="10" y2="10" />
|
<path d="M3 10h18" />
|
||||||
<path d="m9 16 2 2 4-4" />
|
<path d="m9 16 2 2 4-4" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 419 B After Width: | Height: | Size: 359 B |
@@ -6,9 +6,12 @@
|
|||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"date",
|
"date",
|
||||||
"time",
|
"day",
|
||||||
|
"month",
|
||||||
|
"year",
|
||||||
"event",
|
"event",
|
||||||
"clock"
|
"clock",
|
||||||
|
"hour"
|
||||||
],
|
],
|
||||||
"categories": [
|
"categories": [
|
||||||
"time"
|
"time"
|
||||||
|
|||||||
@@ -13,6 +13,6 @@
|
|||||||
<path d="M16 2v4" />
|
<path d="M16 2v4" />
|
||||||
<path d="M8 2v4" />
|
<path d="M8 2v4" />
|
||||||
<path d="M3 10h5" />
|
<path d="M3 10h5" />
|
||||||
<path d="M17.5 17.5 16 16.25V14" />
|
<path d="M17.5 17.5 16 16.3V14" />
|
||||||
<path d="M22 16a6 6 0 1 1-12 0 6 6 0 0 1 12 0Z" />
|
<circle cx="16" cy="16" r="6" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 443 B After Width: | Height: | Size: 424 B |
@@ -6,7 +6,8 @@
|
|||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"date",
|
"date",
|
||||||
"time",
|
"month",
|
||||||
|
"year",
|
||||||
"event"
|
"event"
|
||||||
],
|
],
|
||||||
"categories": [
|
"categories": [
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<rect width="18" height="18" x="3" y="4" rx="2" ry="2" />
|
<path d="M8 2v4" />
|
||||||
<line x1="16" x2="16" y1="2" y2="6" />
|
<path d="M16 2v4" />
|
||||||
<line x1="8" x2="8" y1="2" y2="6" />
|
<rect width="18" height="18" x="3" y="4" rx="2" />
|
||||||
<line x1="3" x2="21" y1="10" y2="10" />
|
<path d="M3 10h18" />
|
||||||
<path d="M8 14h.01" />
|
<path d="M8 14h.01" />
|
||||||
<path d="M12 14h.01" />
|
<path d="M12 14h.01" />
|
||||||
<path d="M16 14h.01" />
|
<path d="M16 14h.01" />
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 484 B |
19
icons/calendar-fold.json
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"danielbayley"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"date",
|
||||||
|
"month",
|
||||||
|
"year",
|
||||||
|
"event",
|
||||||
|
"birthday",
|
||||||
|
"birthdate",
|
||||||
|
"ics"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"time",
|
||||||
|
"files"
|
||||||
|
]
|
||||||
|
}
|
||||||
17
icons/calendar-fold.svg
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="M8 2v4" />
|
||||||
|
<path d="M16 2v4" />
|
||||||
|
<path d="M21 17V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11Z" />
|
||||||
|
<path d="M3 10h18" />
|
||||||
|
<path d="M15 22v-4a2 2 0 0 1 2-2h4" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 393 B |
@@ -5,11 +5,13 @@
|
|||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"date",
|
"date",
|
||||||
"time",
|
"month",
|
||||||
|
"year",
|
||||||
"event",
|
"event",
|
||||||
"heart",
|
"heart",
|
||||||
"favourite",
|
"favourite",
|
||||||
"subscribe"
|
"subscribe",
|
||||||
|
"valentines day"
|
||||||
],
|
],
|
||||||
"categories": [
|
"categories": [
|
||||||
"time"
|
"time"
|
||||||
|
|||||||
@@ -9,9 +9,8 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M21 10V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h7" />
|
<path d="M3 10h18V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7" />
|
||||||
<path d="M16 2v4" />
|
|
||||||
<path d="M8 2v4" />
|
<path d="M8 2v4" />
|
||||||
<path d="M3 10h18" />
|
<path d="M16 2v4" />
|
||||||
<path d="M21.29 14.7a2.43 2.43 0 0 0-2.65-.52c-.3.12-.57.3-.8.53l-.34.34-.35-.34a2.43 2.43 0 0 0-2.65-.53c-.3.12-.56.3-.79.53-.95.94-1 2.53.2 3.74L17.5 22l3.6-3.55c1.2-1.21 1.14-2.8.19-3.74Z" />
|
<path d="M21.29 14.7a2.43 2.43 0 0 0-2.65-.52c-.3.12-.57.3-.8.53l-.34.34-.35-.34a2.43 2.43 0 0 0-2.65-.53c-.3.12-.56.3-.79.53-.95.94-1 2.53.2 3.74L17.5 22l3.6-3.55c1.2-1.21 1.14-2.8.19-3.74Z" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 547 B After Width: | Height: | Size: 525 B |
18
icons/calendar-minus-2.json
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"danielbayley"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"date",
|
||||||
|
"day",
|
||||||
|
"month",
|
||||||
|
"year",
|
||||||
|
"event",
|
||||||
|
"delete",
|
||||||
|
"remove"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"time"
|
||||||
|
]
|
||||||
|
}
|
||||||
17
icons/calendar-minus-2.svg
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="M8 2v4" />
|
||||||
|
<path d="M16 2v4" />
|
||||||
|
<rect width="18" height="18" x="3" y="4" rx="2" />
|
||||||
|
<path d="M3 10h18" />
|
||||||
|
<path d="M10 16h4" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 354 B |
@@ -6,7 +6,9 @@
|
|||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"date",
|
"date",
|
||||||
"time",
|
"day",
|
||||||
|
"month",
|
||||||
|
"year",
|
||||||
"event",
|
"event",
|
||||||
"delete",
|
"delete",
|
||||||
"remove"
|
"remove"
|
||||||
|
|||||||
@@ -9,9 +9,9 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
|
<path d="M8 2v4" />
|
||||||
|
<path d="M16 2v4" />
|
||||||
<path d="M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8" />
|
<path d="M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8" />
|
||||||
<line x1="16" x2="16" y1="2" y2="6" />
|
<path d="M3 10h18" />
|
||||||
<line x1="8" x2="8" y1="2" y2="6" />
|
<path d="M16 19h6" />
|
||||||
<line x1="3" x2="21" y1="10" y2="10" />
|
|
||||||
<line x1="16" x2="22" y1="19" y2="19" />
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 446 B After Width: | Height: | Size: 374 B |
@@ -6,7 +6,9 @@
|
|||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"date",
|
"date",
|
||||||
"time",
|
"day",
|
||||||
|
"month",
|
||||||
|
"year",
|
||||||
"event",
|
"event",
|
||||||
"delete",
|
"delete",
|
||||||
"remove"
|
"remove"
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M4.18 4.18A2 2 0 0 0 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 1.82-1.18" />
|
<path d="M4.2 4.2A2 2 0 0 0 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 1.82-1.18" />
|
||||||
<path d="M21 15.5V6a2 2 0 0 0-2-2H9.5" />
|
<path d="M21 15.5V6a2 2 0 0 0-2-2H9.5" />
|
||||||
<path d="M16 2v4" />
|
<path d="M16 2v4" />
|
||||||
<path d="M3 10h7" />
|
<path d="M3 10h7" />
|
||||||
<path d="M21 10h-5.5" />
|
<path d="M21 10h-5.5" />
|
||||||
<line x1="2" x2="22" y1="2" y2="22" />
|
<path d="m2 2 20 20" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 446 B After Width: | Height: | Size: 429 B |
20
icons/calendar-plus-2.json
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"danielbayley"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"date",
|
||||||
|
"day",
|
||||||
|
"month",
|
||||||
|
"year",
|
||||||
|
"event",
|
||||||
|
"add",
|
||||||
|
"subscribe",
|
||||||
|
"create",
|
||||||
|
"new"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"time"
|
||||||
|
]
|
||||||
|
}
|
||||||
18
icons/calendar-plus-2.svg
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="M8 2v4" />
|
||||||
|
<path d="M16 2v4" />
|
||||||
|
<rect width="18" height="18" x="3" y="4" rx="2" />
|
||||||
|
<path d="M3 10h18" />
|
||||||
|
<path d="M10 16h4" />
|
||||||
|
<path d="M12 14v4" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 378 B |
@@ -6,7 +6,9 @@
|
|||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"date",
|
"date",
|
||||||
"time",
|
"day",
|
||||||
|
"month",
|
||||||
|
"year",
|
||||||
"event",
|
"event",
|
||||||
"add",
|
"add",
|
||||||
"subscribe",
|
"subscribe",
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
|
<path d="M8 2v4" />
|
||||||
|
<path d="M16 2v4" />
|
||||||
<path d="M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8" />
|
<path d="M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8" />
|
||||||
<line x1="16" x2="16" y1="2" y2="6" />
|
<path d="M3 10h18" />
|
||||||
<line x1="8" x2="8" y1="2" y2="6" />
|
<path d="M16 19h6" />
|
||||||
<line x1="3" x2="21" y1="10" y2="10" />
|
<path d="M19 16v6" />
|
||||||
<line x1="19" x2="19" y1="16" y2="22" />
|
|
||||||
<line x1="16" x2="22" y1="19" y2="19" />
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 489 B After Width: | Height: | Size: 398 B |
@@ -6,7 +6,9 @@
|
|||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"date",
|
"date",
|
||||||
"time",
|
"day",
|
||||||
|
"month",
|
||||||
|
"year",
|
||||||
"event",
|
"event",
|
||||||
"range",
|
"range",
|
||||||
"period"
|
"period"
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<rect width="18" height="18" x="3" y="4" rx="2" ry="2" />
|
<rect width="18" height="18" x="3" y="4" rx="2" />
|
||||||
<line x1="16" x2="16" y1="2" y2="6" />
|
<path d="M16 2v4" />
|
||||||
<line x1="8" x2="8" y1="2" y2="6" />
|
<path d="M3 10h18" />
|
||||||
<line x1="3" x2="21" y1="10" y2="10" />
|
<path d="M8 2v4" />
|
||||||
<path d="M17 14h-6" />
|
<path d="M17 14h-6" />
|
||||||
<path d="M13 18H7" />
|
<path d="M13 18H7" />
|
||||||
<path d="M7 14h.01" />
|
<path d="M7 14h.01" />
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 490 B After Width: | Height: | Size: 430 B |
@@ -6,9 +6,11 @@
|
|||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"date",
|
"date",
|
||||||
"time",
|
"day",
|
||||||
"search",
|
"month",
|
||||||
"events"
|
"year",
|
||||||
|
"events",
|
||||||
|
"search"
|
||||||
],
|
],
|
||||||
"categories": [
|
"categories": [
|
||||||
"time"
|
"time"
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M21 12V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h7.5" />
|
<path d="M21 12V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.5" />
|
||||||
<path d="M16 2v4" />
|
<path d="M16 2v4" />
|
||||||
<path d="M8 2v4" />
|
<path d="M8 2v4" />
|
||||||
<path d="M3 10h18" />
|
<path d="M3 10h18" />
|
||||||
<path d="M18 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6v0Z" />
|
<circle cx="18" cy="18" r="3" />
|
||||||
<path d="m22 22-1.5-1.5" />
|
<path d="m22 22-1.5-1.5" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 435 B After Width: | Height: | Size: 417 B |
@@ -6,7 +6,9 @@
|
|||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"date",
|
"date",
|
||||||
"time",
|
"day",
|
||||||
|
"month",
|
||||||
|
"year",
|
||||||
"event",
|
"event",
|
||||||
"remove"
|
"remove"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
|
<path d="M8 2v4" />
|
||||||
|
<path d="M16 2v4" />
|
||||||
<path d="M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8" />
|
<path d="M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8" />
|
||||||
<line x1="16" x2="16" y1="2" y2="6" />
|
<path d="M3 10h18" />
|
||||||
<line x1="8" x2="8" y1="2" y2="6" />
|
<path d="m17 22 5-5" />
|
||||||
<line x1="3" x2="21" y1="10" y2="10" />
|
<path d="m17 17 5 5" />
|
||||||
<line x1="17" x2="22" y1="17" y2="22" />
|
|
||||||
<line x1="17" x2="22" y1="22" y2="17" />
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 489 B After Width: | Height: | Size: 402 B |