Compare commits
46 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9e63e97f31 | ||
|
|
81b85839eb | ||
|
|
15ac2cf282 | ||
|
|
1c1b6c7732 | ||
|
|
29236b45d1 | ||
|
|
1e9a09e8f3 | ||
|
|
9031285357 | ||
|
|
03fd0452f3 | ||
|
|
e4adf28a48 | ||
|
|
9af28b9247 | ||
|
|
e9879d5db0 | ||
|
|
95f66ca5b0 | ||
|
|
b72d86604b | ||
|
|
97c03c7d15 | ||
|
|
f8f98394f4 | ||
|
|
ff0901bf0c | ||
|
|
66f2dc24b1 | ||
|
|
fd20bc5fd9 | ||
|
|
997daac4e6 | ||
|
|
d218851416 | ||
|
|
acf51993d7 | ||
|
|
02cb296050 | ||
|
|
df3bd24540 | ||
|
|
75887dc14c | ||
|
|
a50076fcb9 | ||
|
|
eeff4e2718 | ||
|
|
f065767560 | ||
|
|
7cbc2ac5a7 | ||
|
|
494292618b | ||
|
|
820727329d | ||
|
|
c51bffbd54 | ||
|
|
cad3214584 | ||
|
|
733448d041 | ||
|
|
c7b9f9aaae | ||
|
|
d0e6b9c015 | ||
|
|
0e83769729 | ||
|
|
da5a92746f | ||
|
|
551cc30e79 | ||
|
|
09edf6d16c | ||
|
|
7cc4041a35 | ||
|
|
5418c63468 | ||
|
|
269d5fa2d0 | ||
|
|
c130e58c46 | ||
|
|
2a8f734a19 | ||
|
|
1ddce5b3cb | ||
|
|
859577768c |
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,7 +1,7 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
labels: bug
|
||||
labels: "🐛 bug"
|
||||
---
|
||||
|
||||
<!--
|
||||
|
||||
2
.github/ISSUE_TEMPLATE/icon_request.md
vendored
@@ -1,7 +1,7 @@
|
||||
---
|
||||
name: Icon request
|
||||
about: Suggest an new icon for this project
|
||||
labels: "icon request"
|
||||
labels: "🙌 icon request"
|
||||
---
|
||||
|
||||
<!--
|
||||
|
||||
15
.github/PULL_REQUEST_TEMPLATE/new-icon.md
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: New icon
|
||||
about: Add a new icon to the library
|
||||
labels: "🎨 <icon"
|
||||
---
|
||||
|
||||
<!-- Thanks for submitting an icon! Please make sure you read the icon design guide
|
||||
at https://github.com/lucide-icons/lucide/blob/master/docs/ICON_DESIGN_GUIDE.md beforehand,
|
||||
and please fill everything below. -->
|
||||
|
||||
- **Name of the icon** : <!-- `icon` -->
|
||||
- **Tags (alternative names for this icon)** (add them in tags.json) :
|
||||
- **What is the purpose of this icon?** : <!-- Shows that one can click it to... / Is used to denote or label... -->
|
||||
- **100% scale preview** : <!-- upload an image -->
|
||||
- **Have you considered alternative possibilities** for its naming or design? :
|
||||
7
.github/workflows/ci.yml
vendored
@@ -18,11 +18,11 @@ jobs:
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Fetch tags
|
||||
run: git fetch --tags
|
||||
run: git fetch --all --tags
|
||||
|
||||
- name: Get latest tag
|
||||
id: latest-tag
|
||||
run: echo "::set-output name=LATEST_TAG::$(git tag --list 2>/dev/null | tail -n1 2>/dev/null)"
|
||||
run: echo "::set-output name=LATEST_TAG::$(git describe --tags `git rev-list --tags --max-count=1`)"
|
||||
|
||||
- name: Get yarn cache directory path
|
||||
id: yarn_cache
|
||||
@@ -39,6 +39,9 @@ jobs:
|
||||
- name: Install dependencies
|
||||
run: yarn --pure-lockfile
|
||||
|
||||
- name: Check if we can patch
|
||||
run: .github/workflows/version-up.sh --patch
|
||||
|
||||
- name: Create new version
|
||||
id: new-version
|
||||
run: echo "::set-output name=NEW_VERSION::$(.github/workflows/version-up.sh --patch)"
|
||||
|
||||
18
.github/workflows/close-stale-prs.yml
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
name: 'Close stale issues and PR'
|
||||
on:
|
||||
schedule:
|
||||
- cron: '45 1 * * *'
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v3
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
stale-pr-message: 'This PR is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 5 days.'
|
||||
close-pr-message: 'This PR was closed because it has been stalled for 5 days with no activity.'
|
||||
close-pr-label: '🧶 stale'
|
||||
days-before-stale: 30
|
||||
days-before-close: 5
|
||||
days-before-pr-close: -1
|
||||
84
.github/workflows/release.yml
vendored
@@ -137,6 +137,47 @@ jobs:
|
||||
name: lucide-vue-package-json
|
||||
path: packages/lucide-vue/package.json
|
||||
|
||||
lucide-vue-next:
|
||||
if: github.repository == 'lucide-icons/lucide'
|
||||
runs-on: ubuntu-latest
|
||||
needs: pre-build
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: '12.x'
|
||||
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ needs.pre-build.outputs.YARN_CACHE_DIR }}
|
||||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-yarn-
|
||||
|
||||
- name: Install dependencies
|
||||
run: yarn --pure-lockfile
|
||||
|
||||
- name: Set Auth Token
|
||||
run: npm config set //registry.npmjs.org/:_authToken ${{ secrets.NPM_TOKEN }}
|
||||
|
||||
- name: Set new version
|
||||
run: yarn workspace lucide-vue-next version --new-version ${{ needs.pre-build.outputs.VERSION }} --no-git-tag-version
|
||||
|
||||
- name: Build
|
||||
run: yarn workspace lucide-vue-next build
|
||||
|
||||
- name: Test
|
||||
run: yarn workspace lucide-vue-next test
|
||||
|
||||
- name: Publish
|
||||
run: yarn workspace lucide-vue-next publish
|
||||
|
||||
- name: Upload package.json
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: lucide-vue-next-package-json
|
||||
path: packages/lucide-vue-next/package.json
|
||||
|
||||
lucide-angular:
|
||||
if: github.repository == 'lucide-icons/lucide'
|
||||
runs-on: ubuntu-latest
|
||||
@@ -171,12 +212,50 @@ jobs:
|
||||
- name: Upload package.json
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: lucide-angular-package-json
|
||||
path: packages/lucide-angular/package.json
|
||||
|
||||
lucide-preact:
|
||||
if: github.repository == 'lucide-icons/lucide'
|
||||
runs-on: ubuntu-latest
|
||||
needs: pre-build
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ needs.pre-build.outputs.YARN_CACHE_DIR }}
|
||||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-yarn-
|
||||
|
||||
- name: Install dependencies
|
||||
run: yarn --pure-lockfile
|
||||
|
||||
- name: Set Auth Token
|
||||
run: npm config set //registry.npmjs.org/:_authToken ${{ secrets.NPM_TOKEN }}
|
||||
|
||||
- name: Set package.json version lucide
|
||||
run: yarn workspace lucide-preact version --new-version ${{ needs.pre-build.outputs.VERSION }} --no-git-tag-version
|
||||
|
||||
- name: Build
|
||||
run: yarn workspace lucide-preact build
|
||||
|
||||
- name: Test
|
||||
run: yarn workspace lucide-preact test
|
||||
|
||||
- name: Publish
|
||||
run: yarn workspace lucide-preact publish
|
||||
|
||||
- name: Upload package.json
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: lucide-preact-package-json
|
||||
path: packages/lucide-preact/package.json
|
||||
|
||||
upload-package-jsons:
|
||||
if: github.repository == 'lucide-icons/lucide'
|
||||
runs-on: ubuntu-latest
|
||||
needs: [lucide, lucide-react, lucide-vue, lucide-angular]
|
||||
needs: [pre-build, lucide, lucide-react, lucide-vue, lucide-vue-next, lucide-angular, lucide-preact]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
@@ -187,6 +266,9 @@ jobs:
|
||||
mv lucide-package-json/package.json packages/lucide/package.json
|
||||
mv lucide-react-package-json/package.json packages/lucide-react/package.json
|
||||
mv lucide-vue-package-json/package.json packages/lucide-vue/package.json
|
||||
mv lucide-preact-package-json/package.json packages/lucide-preact/package.json
|
||||
mv lucide-vue-next-package-json/package.json packages/lucide-vue-next/package.json
|
||||
mv lucide-angular-json/package.json packages/lucide-angular/package.json
|
||||
|
||||
- name: Commit package.jsons
|
||||
run: |
|
||||
|
||||
2
.github/workflows/version-up.sh
vendored
@@ -4,7 +4,7 @@
|
||||
|
||||
## get highest version tag for all branches
|
||||
function highest_tag(){
|
||||
local TAG=$(git tag --list 2>/dev/null | tail -n1 2>/dev/null)
|
||||
local TAG=$(git describe --tags `git rev-list --tags --max-count=1`)
|
||||
echo "$TAG"
|
||||
}
|
||||
|
||||
|
||||
34
README.md
@@ -27,8 +27,10 @@ We're trying to expanding the icon set as much as possible while keeping it nice
|
||||
* [Usage](#usage)
|
||||
* [Web](#web)
|
||||
* [React](#react)
|
||||
* [Vue](#vue)
|
||||
* [Vue 2](#vue-2)
|
||||
* [Vue 3](#vue-3)
|
||||
* [Angular](#angular)
|
||||
* [Preact](#preact)
|
||||
* [Figma](#figma)
|
||||
* [Contributing](#contributing)
|
||||
* [Community](#community)
|
||||
@@ -69,7 +71,7 @@ npm install lucide-react
|
||||
|
||||
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/master/packages/lucide-react#lucide-react).
|
||||
|
||||
### Vue
|
||||
### Vue 2
|
||||
|
||||
Implementation of the lucide icon library for vue applications.
|
||||
|
||||
@@ -83,6 +85,20 @@ npm install lucide-vue
|
||||
|
||||
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/master/packages/lucide-vue#lucide-vue).
|
||||
|
||||
### Vue 3
|
||||
|
||||
Implementation of the lucide icon library for vue applications.
|
||||
|
||||
```sh
|
||||
yarn add lucide-vue-next
|
||||
|
||||
# or
|
||||
|
||||
npm install lucide-vue-next
|
||||
```
|
||||
|
||||
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/master/packages/lucide-vue-next#lucide-vue-next).
|
||||
|
||||
### Angular
|
||||
|
||||
```sh
|
||||
@@ -95,6 +111,20 @@ npm install lucide-angular
|
||||
|
||||
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/packages/lucide-angular#lucide-angular).
|
||||
|
||||
### Preact
|
||||
|
||||
Implementation of the lucide icon library for preact applications.
|
||||
|
||||
```sh
|
||||
yarn add lucide-preact
|
||||
|
||||
# or
|
||||
|
||||
npm install lucide-preact
|
||||
```
|
||||
|
||||
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/master/packages/lucide-preact#lucide-preact).
|
||||
|
||||
### Figma
|
||||
|
||||
The lucide figma plugin.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
module.exports = {
|
||||
presets: ['@babel/env'],
|
||||
// babelrcRoots: ['.', './packages/*'],
|
||||
env: {
|
||||
test: {
|
||||
presets: ['@babel/env'],
|
||||
|
||||
16
icons/bell-ring.svg
Normal file
@@ -0,0 +1,16 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M18 8A6 6 0 006 8c0 7-3 9-3 9h18s-3-2-3-9" />
|
||||
<path d="M13.73 21a2 2 0 01-3.46 0" />
|
||||
<path d="M2 8c0-2.2.7-4.3 2-6" />
|
||||
<path d="M22 8a10 10 0 00-2-6" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 378 B |
14
icons/check-circle-2.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="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z" />
|
||||
<path d="M9 12l2 2 4-4" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 325 B |
14
icons/chevrons-up-down.svg
Normal file
@@ -0,0 +1,14 @@
|
||||
<svg
|
||||
width="24"
|
||||
height="24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M7 15l5 5 5-5" />
|
||||
<path d="M7 9l5-5 5 5" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 265 B |
14
icons/circle-slashed.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="12" cy="12" r="10" />
|
||||
<path d="M22 2L2 22" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 270 B |
15
icons/clipboard-check.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="M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2" />
|
||||
<path d="M15 2H9a1 1 0 00-1 1v2a1 1 0 001 1h6a1 1 0 001-1V3a1 1 0 00-1-1z" />
|
||||
<path d="M9 13l2 2 4-4" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 399 B |
16
icons/clipboard-copy.svg
Normal file
@@ -0,0 +1,16 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M16 4h2a2 2 0 012 2v4M8 4H6a2 2 0 00-2 2v14a2 2 0 002 2h12a2 2 0 002-2v-2" />
|
||||
<rect x="8" y="2" width="8" height="4" rx="1" ry="1" />
|
||||
<path d="M21 14H11" />
|
||||
<path d="M15 10l-4 4 4 4" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 411 B |
16
icons/clipboard-x.svg
Normal file
@@ -0,0 +1,16 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2" />
|
||||
<path d="M15 2H9a1 1 0 00-1 1v2a1 1 0 001 1h6a1 1 0 001-1V3a1 1 0 00-1-1z" />
|
||||
<path d="M15 11l-6 6" />
|
||||
<path d="M9 11l6 6" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 422 B |
15
icons/cloud-fog.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="M20 16.2A4.5 4.5 0 0017.5 8h-1.8A7 7 0 104 14.9" />
|
||||
<path d="M16 17L7 17" />
|
||||
<path d="M17 21L9 21" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 325 B |
14
icons/cloud-moon.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="M13.63 22A3.3 3.3 0 0017 18.79a3.3 3.3 0 00-3.38-3.22h-1.34A5.23 5.23 0 007.25 12 5.13 5.13 0 002 17c0 2.76 2.35 5 5.25 5h6.38z" />
|
||||
<path d="M9.95 9a6.13 6.13 0 015.5-5.18 4.77 4.77 0 006.67 6.67A6.13 6.13 0 0119.46 15" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 444 B |
18
icons/cloud-sun.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="M12 2v2" />
|
||||
<path d="M5.22 5.22l1.42 1.42" />
|
||||
<path d="M20 12h2" />
|
||||
<path d="M15.97 12.5A4 4 0 009.5 8.88" />
|
||||
<path d="M13.63 22A3.3 3.3 0 0017 18.79a3.3 3.3 0 00-3.38-3.22h-1.34A5.23 5.23 0 007.25 12 5.13 5.13 0 002 17c0 2.76 2.35 5 5.25 5h6.38z" />
|
||||
<path d="M17.36 6.64l1.42-1.42" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 515 B |
14
icons/cloudy.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="M17.5 21a4.5 4.5 0 100-9h-1.8A7 7 0 109 21h8.5z" />
|
||||
<path d="M22 10c0-1.5-1.5-3-3.5-3H17c-.7-2.3-2.9-4-5.4-4-2.7 0-5 2-5.5 4.5" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 352 B |
16
icons/expand.svg
Normal file
@@ -0,0 +1,16 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M21 21l-6-6m6 6v-4.8m0 4.8h-4.8" />
|
||||
<path d="M3 16.2V21m0 0h4.8M3 21l6-6" />
|
||||
<path d="M21 7.8V3m0 0h-4.8M21 3l-6 6" />
|
||||
<path d="M3 7.8V3m0 0h4.8M3 3l6 6" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 382 B |
16
icons/form-input.svg
Normal file
@@ -0,0 +1,16 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<rect x="2" y="6" width="20" height="12" rx="2" />
|
||||
<path d="M12 12h.01" />
|
||||
<path d="M17 12h.01" />
|
||||
<path d="M7 12h.01" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 338 B |
15
icons/pause-octagon.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="M10 15V9" />
|
||||
<path d="M14 15V9" />
|
||||
<path d="M7.714 2h8.572L22 7.714v8.572L16.286 22H7.714L2 16.286V7.714L7.714 2z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 341 B |
16
icons/person-standing.svg
Normal file
@@ -0,0 +1,16 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<circle cx="12" cy="5" r="1" />
|
||||
<path d="M9 20L12 14L15 20" />
|
||||
<path d="M6 8L12 10L18 8" />
|
||||
<path d="M12 10V14" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 331 B |
18
icons/plug-zap.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="M13 2l-2 2.5h3L12 7" />
|
||||
<path d="M12 22v-3" />
|
||||
<path d="M10 13v-2.5" />
|
||||
<path d="M10 12.5v-2" />
|
||||
<path d="M14 12.5v-2" />
|
||||
<path d="M16 15a2 2 0 00-2-2h-4a2 2 0 00-2 2v2a2 2 0 002 2h4a2 2 0 002-2v-2z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 432 B |
17
icons/scale.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="M16 16l3-8 3.001 8A5.002 5.002 0 0116 16z" />
|
||||
<path d="M2 16l3-8 3.001 8A5.002 5.002 0 012 16z" />
|
||||
<path d="M7 21h10" />
|
||||
<path d="M12 3v18" />
|
||||
<path d="M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 416 B |
@@ -9,6 +9,6 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M12.22 2h-.44a2 2 0 00-2 2v.18a2 2 0 01-1 1.73l-.43.25a2 2 0 01-2 0l-.15-.08a2 2 0 00-2.73.73l-.22.38a2 2 0 00.73 2.73l.15.1a2 2 0 011 1.72v.51a2 2 0 01-1 1.74l-.15.09a2 2 0 00-.73 2.73l.22.38a2 2 0 002.73.73l.15-.08a2 2 0 012 0l.43.25a2 2 0 011 1.73V20a2 2 0 002 2h.44a2 2 0 002-2v-.18a2 2 0 011-1.73l.43-.25a2 2 0 012 0l.15.08a2 2 0 002.73-.73l.22-.39a2 2 0 00-.73-2.73l-.15-.08a2 2 0 01-1-1.74v-.5a2 2 0 011-1.74l.15-.09a2 2 0 00.73-2.73l-.22-.38a2 2 0 00-2.73-.73l-.15.08a2 2 0 01-2 0l-.43-.25a2 2 0 01-1-1.73V4a2 2 0 00-2-2z" />
|
||||
<circle cx="12" cy="12" r="3" />
|
||||
<path d="M18.727 14.727a1.5 1.5 0 00.3 1.655l.055.054a1.816 1.816 0 010 2.573 1.818 1.818 0 01-2.573 0l-.055-.055a1.5 1.5 0 00-1.654-.3 1.5 1.5 0 00-.91 1.373v.155a1.818 1.818 0 11-3.636 0V20.1a1.5 1.5 0 00-.981-1.373 1.5 1.5 0 00-1.655.3l-.054.055a1.818 1.818 0 01-3.106-1.287 1.818 1.818 0 01.533-1.286l.054-.055a1.5 1.5 0 00.3-1.654 1.5 1.5 0 00-1.372-.91h-.155a1.818 1.818 0 110-3.636H3.9a1.5 1.5 0 001.373-.981 1.5 1.5 0 00-.3-1.655l-.055-.054A1.818 1.818 0 117.491 4.99l.054.054a1.5 1.5 0 001.655.3h.073a1.5 1.5 0 00.909-1.372v-.155a1.818 1.818 0 013.636 0V3.9a1.499 1.499 0 00.91 1.373 1.5 1.5 0 001.654-.3l.054-.055a1.817 1.817 0 012.573 0 1.819 1.819 0 010 2.573l-.055.054a1.5 1.5 0 00-.3 1.655v.073a1.5 1.5 0 001.373.909h.155a1.818 1.818 0 010 3.636H20.1a1.499 1.499 0 00-1.373.91v0z" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 788 B |
16
icons/shrink.svg
Normal file
@@ -0,0 +1,16 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M15 15l6 6m-6-6v4.8m0-4.8h4.8" />
|
||||
<path d="M9 19.8V15m0 0H4.2M9 15l-6 6" />
|
||||
<path d="M15 4.2V9m0 0h4.8M15 9l6-6" />
|
||||
<path d="M9 4.2V9m0 0H4.2M9 9L3 3" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 379 B |
15
icons/sidebar-close.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 x="3" y="3" width="18" height="18" rx="2" ry="2" />
|
||||
<line x1="9" y1="3" x2="9" y2="21" />
|
||||
<path d="M17 16L13 12L17 8" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 341 B |
15
icons/sidebar-open.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 x="3" y="3" width="18" height="18" rx="2" ry="2" />
|
||||
<line x1="9" y1="3" x2="9" y2="21" />
|
||||
<path d="M13 8L17 12L13 16" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 341 B |
17
icons/skull.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"
|
||||
>
|
||||
<circle cx="9" cy="12" r="1" />
|
||||
<circle cx="15" cy="12" r="1" />
|
||||
<path d="M8 20v2h8v-2" />
|
||||
<path d="M12.5 17l-.5-1-.5 1h1z" />
|
||||
<path d="M16 20a2 2 0 001.56-3.25 8 8 0 10-11.12 0A2 2 0 008 20" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 413 B |
17
icons/tent.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="M19 20L10 4" />
|
||||
<path d="M5 20l9-16" />
|
||||
<path d="M3 20h18" />
|
||||
<path d="M12 15l-3 5" />
|
||||
<path d="M12 15l3 5" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 338 B |
17
icons/tornado.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="M21 4H3" />
|
||||
<path d="M18 8H6" />
|
||||
<path d="M19 12H9" />
|
||||
<path d="M16 16h-6" />
|
||||
<path d="M11 20H9" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 327 B |
15
icons/vibrate.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="M2 8l2 2-2 2 2 2-2 2" />
|
||||
<path d="M22 8l-2 2 2 2-2 2 2 2" />
|
||||
<rect x="8" y="5" width="8" height="14" rx="1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 334 B |
@@ -2,8 +2,7 @@
|
||||
"private": true,
|
||||
"workspaces": {
|
||||
"packages": [
|
||||
"packages/*",
|
||||
"site"
|
||||
"packages/*"
|
||||
],
|
||||
"nohoist": [
|
||||
"**/jest", "**/jest/**",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "lucide-figma",
|
||||
"version": "0.15.1",
|
||||
"version": "0.15.11",
|
||||
"license": "ISC",
|
||||
"private": true,
|
||||
"main": "build/ui.js",
|
||||
@@ -15,7 +15,7 @@
|
||||
"css-loader": "^3.0.0",
|
||||
"html-webpack-inline-source-plugin": "^0.0.10",
|
||||
"html-webpack-plugin": "^3.2.0",
|
||||
"lucide-react": "^0.15.1",
|
||||
"lucide-react": "0.15.11",
|
||||
"react": "^16.8.6",
|
||||
"react-dom": "^16.8.6",
|
||||
"style-loader": "^0.23.1",
|
||||
|
||||
@@ -2054,9 +2054,9 @@ locate-path@^3.0.0:
|
||||
path-exists "^3.0.0"
|
||||
|
||||
lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.3:
|
||||
version "4.17.20"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
|
||||
integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
|
||||
version "4.17.21"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||
|
||||
loose-envify@^1.1.0, loose-envify@^1.4.0:
|
||||
version "1.4.0"
|
||||
@@ -2077,10 +2077,10 @@ lru-cache@^5.1.1:
|
||||
dependencies:
|
||||
yallist "^3.0.2"
|
||||
|
||||
lucide-react@^0.15.1:
|
||||
version "0.15.5"
|
||||
resolved "https://registry.yarnpkg.com/lucide-react/-/lucide-react-0.15.5.tgz#694cfe1f6bbc6e736199785c58cc7f8dcfc14309"
|
||||
integrity sha512-iCplw/CRck/E5gA5YGGASBm6qvMZfvqtPE+ew75dSz50+LDKEbNhu9wy1s6HC1A6isgvVCeED9mqtdzd0x2RmA==
|
||||
lucide-react@0.15.11:
|
||||
version "0.15.11"
|
||||
resolved "https://registry.yarnpkg.com/lucide-react/-/lucide-react-0.15.11.tgz#34f2d76d1e7fda978f4a8b2d0538b84ecbecf106"
|
||||
integrity sha512-2NOpAVt2ScBkwlRvub7adfmWZX1o+so+3elAtyp5g9jaAKthszAgKZwNEFhB2Gl1tT5CuvVLPsjaRjhnpNjq9w==
|
||||
dependencies:
|
||||
prop-types "^15.7.2"
|
||||
react "^16.5.1"
|
||||
|
||||
9
packages/lucide-preact/.npmignore
Normal file
@@ -0,0 +1,9 @@
|
||||
stats
|
||||
node_modules
|
||||
tests
|
||||
scripts
|
||||
build
|
||||
src
|
||||
babel.config.js
|
||||
jest.config.js
|
||||
rollup.config.js
|
||||
15
packages/lucide-preact/LICENSE
Normal file
@@ -0,0 +1,15 @@
|
||||
ISC License
|
||||
|
||||
Copyright (c) 2020, Lucide Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
77
packages/lucide-preact/README.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# Lucide Preact
|
||||
|
||||
Implementation of the lucide icon library for preact applications.
|
||||
|
||||
> What is lucide? Read it [here](https://github.com/lucide-icons/lucide#what-is-lucide).
|
||||
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
yarn add lucide-preact
|
||||
|
||||
# or
|
||||
|
||||
npm install lucide-preact
|
||||
```
|
||||
|
||||
## How to use
|
||||
|
||||
It's build with ESmodules so it's completely threeshakable.
|
||||
Each icon can be imported as a preact component.
|
||||
|
||||
### Example
|
||||
|
||||
You can pass additional props to adjust the icon.
|
||||
|
||||
``` js
|
||||
import { Camera } from 'lucide-preact';
|
||||
// Returns PreactComponent
|
||||
|
||||
// Usage
|
||||
const App = () => {
|
||||
return <Camera color="red" size={48}/>
|
||||
};
|
||||
|
||||
export default App;
|
||||
```
|
||||
|
||||
### Props
|
||||
|
||||
| name | type | default
|
||||
| ------------ | -------- | --------
|
||||
| `size` | *Number* | 24
|
||||
| `color` | *String* | currentColor
|
||||
| `strokeWidth`| *Number* | 2
|
||||
|
||||
### Custom props / svg attributes
|
||||
|
||||
You can also pass custom props that will be added in the as attributes. With that you can modify the icons look by passing svg attributes.
|
||||
|
||||
``` js
|
||||
// Usage
|
||||
const App = () => {
|
||||
return <Camera fill="red" stroke-linejoin="bevel"/>
|
||||
};
|
||||
```
|
||||
|
||||
> svg attributes in preact aren't transformed, so if want to change e.g. the `stroke-linejoin` you need to pass it in kebabcase, the way svg spec is written so. See this topic in the [preact documentation](https://preactjs.com/guide/v10/differences-to-react/#svg-inside-jsx).
|
||||
|
||||
### One generic icon component
|
||||
|
||||
It is possible to create one generic icon component to load icons.
|
||||
|
||||
> :warning: Example below importing all EsModules, caution using this example, not recommended when you using bundlers, your application build size will grow strongly.
|
||||
|
||||
#### Icon Component Example
|
||||
|
||||
``` js
|
||||
import * as icons from 'lucide-preact';
|
||||
|
||||
const Icon = ({name, color, size}) => {
|
||||
const LucideIcon = icons[name];
|
||||
|
||||
return <LucideIcon color={color} size={size} />
|
||||
};
|
||||
|
||||
export default Icon;
|
||||
```
|
||||
6
packages/lucide-preact/babel.config.js
Normal file
@@ -0,0 +1,6 @@
|
||||
const mainConfig = require('../../babel.config');
|
||||
|
||||
module.exports = {
|
||||
presets: ['preact'],
|
||||
env: mainConfig.env,
|
||||
};
|
||||
9
packages/lucide-preact/jest.config.js
Normal file
@@ -0,0 +1,9 @@
|
||||
module.exports = {
|
||||
verbose: true,
|
||||
roots: ['<rootDir>/src/', '<rootDir>/tests/'],
|
||||
moduleFileExtensions: ['js'],
|
||||
transformIgnorePatterns: [`/node_modules`],
|
||||
transform: {
|
||||
'^.+\\.js$': 'babel-jest',
|
||||
},
|
||||
};
|
||||
38
packages/lucide-preact/package.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"name": "lucide-preact",
|
||||
"description": "Lucide Preact package, Lucide is a community-run fork of Feather Icons, open for anyone to contribute icons.",
|
||||
"version": "0.15.10-beta.7",
|
||||
"license": "ISC",
|
||||
"homepage": "https://lucide.dev",
|
||||
"bugs": "https://github.com/lucide-icons/lucide/issues",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/lucide-icons/lucide.git",
|
||||
"directory": "packages/lucide-preact"
|
||||
},
|
||||
"author": "Eric Fennis",
|
||||
"amdName": "lucide-preact",
|
||||
"main": "dist/cjs/lucide-preact.js",
|
||||
"main:umd": "dist/umd/lucide-preact.js",
|
||||
"module": "dist/esm/lucide-preact.js",
|
||||
"unpkg": "dist/umd/lucide-preact.min.js",
|
||||
"typings": "dist/lucide-preact.d.ts",
|
||||
"scripts": {
|
||||
"build": "yarn clean && yarn build:icons && yarn build:es && yarn build:types && yarn build:bundles",
|
||||
"clean": "rm -rf dist && rm -rf stats && rm -rf ./src/icons/*.js",
|
||||
"build:icons": "yarn --cwd ../../ build:icons --output=../packages/lucide-preact/src --templateSrc=../packages/lucide-preact/scripts/exportTemplate --renderUniqueKey",
|
||||
"build:es": "babel src -d dist/esm",
|
||||
"build:types": "yarn --cwd ../../ babel-node packages/lucide-preact/scripts/buildTypes.js",
|
||||
"build:bundles": "yarn --cwd ../../ rollup -c packages/lucide-preact/rollup.config.js",
|
||||
"test": "jest"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@testing-library/preact": "^2.0.1",
|
||||
"babel-preset-preact": "^2.0.0",
|
||||
"jest": "^26.6.3",
|
||||
"preact": "^10.5.13"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"preact": "^10.5.13"
|
||||
}
|
||||
}
|
||||
48
packages/lucide-preact/rollup.config.js
Normal file
@@ -0,0 +1,48 @@
|
||||
import plugins from '../../rollup.plugins';
|
||||
import pkg from './package.json';
|
||||
|
||||
const packageName = 'LucidePreact';
|
||||
const outputFileName = 'lucide-preact';
|
||||
const rootDir = 'packages/lucide-preact'; // It runs from the root
|
||||
const outputDir = `${rootDir}/dist`;
|
||||
const inputs = [`${rootDir}/src/lucide-preact.js`];
|
||||
const bundles = [
|
||||
{
|
||||
format: 'umd',
|
||||
inputs,
|
||||
outputDir,
|
||||
minify: true,
|
||||
},
|
||||
{
|
||||
format: 'umd',
|
||||
inputs,
|
||||
outputDir,
|
||||
},
|
||||
{
|
||||
format: 'cjs',
|
||||
inputs,
|
||||
outputDir,
|
||||
},
|
||||
];
|
||||
|
||||
const configs = bundles
|
||||
.map(({ inputs, outputDir, format, minify }) =>
|
||||
inputs.map(input => ({
|
||||
input,
|
||||
plugins: plugins(pkg, minify),
|
||||
external: ['preact', 'prop-types', 'lucide'],
|
||||
output: {
|
||||
name: packageName,
|
||||
file: `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.js`,
|
||||
format,
|
||||
sourcemap: true,
|
||||
globals: {
|
||||
preact: 'preact',
|
||||
'prop-types': 'PropTypes',
|
||||
},
|
||||
},
|
||||
})),
|
||||
)
|
||||
.flat();
|
||||
|
||||
export default configs;
|
||||
43
packages/lucide-preact/scripts/buildTypes.js
Normal file
@@ -0,0 +1,43 @@
|
||||
import path from 'path';
|
||||
import {
|
||||
writeFile,
|
||||
readSvgDirectory,
|
||||
resetFile,
|
||||
toPascalCase,
|
||||
appendFile,
|
||||
} from '../../../scripts/helpers';
|
||||
|
||||
const srcDirectory = path.join(__dirname, '../dist');
|
||||
|
||||
// Declare type definitions
|
||||
const typeDefinitions = `\
|
||||
/// <reference types="preact" />
|
||||
import { JSX, RefObject } from 'preact'
|
||||
|
||||
interface LucideProps extends Partial<Omit<JSX.SVGAttributes, "ref" | "size">> {
|
||||
key?: string | number;
|
||||
ref?: string | ((component: any) => any) | RefObject<any>;
|
||||
color?: string
|
||||
size?: string | number
|
||||
}
|
||||
|
||||
// Generated icons
|
||||
`;
|
||||
|
||||
const ICONS_DIR = path.resolve(__dirname, '../../../icons');
|
||||
const TYPES_FILE = 'lucide-preact.d.ts';
|
||||
|
||||
resetFile(TYPES_FILE, srcDirectory);
|
||||
writeFile(typeDefinitions, TYPES_FILE, srcDirectory);
|
||||
|
||||
const svgFiles = readSvgDirectory(ICONS_DIR);
|
||||
|
||||
svgFiles.forEach(svgFile => {
|
||||
const iconName = path.basename(svgFile, '.svg');
|
||||
const componentName = toPascalCase(iconName);
|
||||
|
||||
const exportTypeString = `export declare const ${componentName}: (props: LucideProps) => JSX.Element;\n`;
|
||||
appendFile(exportTypeString, TYPES_FILE, srcDirectory);
|
||||
});
|
||||
|
||||
console.log(`Generated ${TYPES_FILE} file with`, svgFiles.length, 'icons');
|
||||
7
packages/lucide-preact/scripts/exportTemplate.js
Normal file
@@ -0,0 +1,7 @@
|
||||
export default ({ componentName, children }) => `
|
||||
import createPreactComponent from '../createPreactComponent';
|
||||
|
||||
const ${componentName} = createPreactComponent('${componentName}', ${JSON.stringify(children)});
|
||||
|
||||
export default ${componentName};
|
||||
`;
|
||||
22
packages/lucide-preact/src/createPreactComponent.js
Normal file
@@ -0,0 +1,22 @@
|
||||
import { h } from 'preact';
|
||||
import defaultAttributes from './defaultAttributes';
|
||||
|
||||
export default (iconName, iconNode) => {
|
||||
const Component = ({ color = 'currentColor', size = 24, strokeWidth = 2, ...rest }) =>
|
||||
h(
|
||||
'svg',
|
||||
{
|
||||
...defaultAttributes,
|
||||
width: size,
|
||||
height: size,
|
||||
stroke: color,
|
||||
'stroke-width': strokeWidth,
|
||||
...rest,
|
||||
},
|
||||
iconNode.map(([tag, attrs]) => h(tag, attrs)),
|
||||
);
|
||||
|
||||
Component.displayName = `${iconName}`;
|
||||
|
||||
return Component;
|
||||
};
|
||||
11
packages/lucide-preact/src/defaultAttributes.js
Normal file
@@ -0,0 +1,11 @@
|
||||
export default {
|
||||
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',
|
||||
};
|
||||
1
packages/lucide-preact/src/icons/.gitkeep
Normal file
@@ -0,0 +1 @@
|
||||
Folder for generated icons
|
||||
1
packages/lucide-preact/src/lucide-preact.js
Normal file
@@ -0,0 +1 @@
|
||||
export * from './icons';
|
||||
@@ -0,0 +1,5 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`Using lucide icon components should adjust the size, stroke color and stroke width 1`] = `"<svg xmlns=\\"http://www.w3.org/2000/svg\\" width=\\"48\\" height=\\"48\\" viewBox=\\"0 0 24 24\\" fill=\\"none\\" stroke=\\"red\\" stroke-width=\\"4\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" data-testid=\\"grid-icon\\"><rect x=\\"3\\" y=\\"3\\" width=\\"18\\" height=\\"18\\" rx=\\"2\\" ry=\\"2\\"></rect><line x1=\\"3\\" y1=\\"9\\" x2=\\"21\\" y2=\\"9\\"></line><line x1=\\"3\\" y1=\\"15\\" x2=\\"21\\" y2=\\"15\\"></line><line x1=\\"9\\" y1=\\"3\\" x2=\\"9\\" y2=\\"21\\"></line><line x1=\\"15\\" y1=\\"3\\" x2=\\"15\\" y2=\\"21\\"></line></svg>"`;
|
||||
|
||||
exports[`Using lucide icon components should render an component 1`] = `"<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 x=\\"3\\" y=\\"3\\" width=\\"18\\" height=\\"18\\" rx=\\"2\\" ry=\\"2\\"></rect><line x1=\\"3\\" y1=\\"9\\" x2=\\"21\\" y2=\\"9\\"></line><line x1=\\"3\\" y1=\\"15\\" x2=\\"21\\" y2=\\"15\\"></line><line x1=\\"9\\" y1=\\"3\\" x2=\\"9\\" y2=\\"21\\"></line><line x1=\\"15\\" y1=\\"3\\" x2=\\"15\\" y2=\\"21\\"></line></svg>"`;
|
||||
30
packages/lucide-preact/tests/lucide-preact.spec.js
Normal file
@@ -0,0 +1,30 @@
|
||||
import { h } from 'preact'
|
||||
import { render } from '@testing-library/preact'
|
||||
import { Grid } from '../src/icons'
|
||||
|
||||
describe('Using lucide icon components', () => {
|
||||
it('should render an component', () => {
|
||||
const { container } = render( <Grid/> );
|
||||
|
||||
expect( container.innerHTML ).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it('should adjust the size, stroke color and stroke width', () => {
|
||||
const testId = 'grid-icon';
|
||||
const { container, getByTestId } = render(
|
||||
<Grid
|
||||
data-testid={testId}
|
||||
size={48}
|
||||
stroke="red"
|
||||
strokeWidth={4}
|
||||
/>,
|
||||
);
|
||||
|
||||
const { attributes } = getByTestId(testId);
|
||||
expect(attributes.stroke.value).toBe('red');
|
||||
expect(attributes.width.value).toBe('48');
|
||||
expect(attributes.height.value).toBe('48');
|
||||
expect(attributes['stroke-width'].value).toBe('4');
|
||||
expect( container.innerHTML ).toMatchSnapshot();
|
||||
});
|
||||
})
|
||||
@@ -1,6 +1,19 @@
|
||||
const mainConfig = require('../../babel.config');
|
||||
|
||||
module.exports = {
|
||||
presets: ['react-app'],
|
||||
env: mainConfig.env,
|
||||
presets: [
|
||||
[
|
||||
'@babel/env',
|
||||
{
|
||||
loose: true,
|
||||
modules: false,
|
||||
},
|
||||
],
|
||||
],
|
||||
env: {
|
||||
...mainConfig.env,
|
||||
test: {
|
||||
presets: ['react-app'],
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "lucide-react",
|
||||
"description": "Lucide React package, Lucide is a community-run fork of Feather Icons, open for anyone to contribute icons.",
|
||||
"version": "0.15.6",
|
||||
"version": "0.15.17",
|
||||
"license": "ISC",
|
||||
"homepage": "https://lucide.dev",
|
||||
"bugs": "https://github.com/lucide-icons/lucide/issues",
|
||||
@@ -21,19 +21,18 @@
|
||||
"build": "yarn clean && yarn build:icons && yarn build:es && yarn build:types && yarn build:bundles",
|
||||
"clean": "rm -rf dist && rm -rf stats && rm -rf ./src/icons/*.js",
|
||||
"build:icons": "yarn --cwd ../../ build:icons --output=../packages/lucide-react/src --templateSrc=../packages/lucide-react/scripts/exportTemplate --renderUniqueKey",
|
||||
"build:es": "yarn --cwd ../../ babel packages/lucide-react/src -d packages/lucide-react/dist/esm",
|
||||
"build:es": "babel src -d dist/esm",
|
||||
"build:types": "yarn --cwd ../../ babel-node packages/lucide-react/scripts/buildTypes.js",
|
||||
"build:bundles": "yarn --cwd ../../ rollup -c packages/lucide-react/rollup.config.js",
|
||||
"test": "jest"
|
||||
},
|
||||
"dependencies": {
|
||||
"prop-types": "^15.7.2",
|
||||
"react": "^16.5.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@testing-library/react": "^11.2.6",
|
||||
"babel-preset-react-app": "^10.0.0",
|
||||
"jest": "^26.6.3",
|
||||
"react-test-renderer": "^16.5.1"
|
||||
"prop-types": "^15.7.2",
|
||||
"react": "^16.5.1",
|
||||
"react-dom": "^17.0.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"prop-types": "^15.7.2",
|
||||
|
||||
@@ -11,8 +11,10 @@ const srcDirectory = path.join(__dirname, '../dist');
|
||||
|
||||
// Declare type definitions
|
||||
const typeDefinitions = `\
|
||||
/// <reference types="react" />
|
||||
import { SVGAttributes } from 'react'
|
||||
/// <reference types="vue" />
|
||||
import { SVGAttributes } from 'vue'
|
||||
|
||||
declare module 'lucide-vue-next'
|
||||
|
||||
// Create interface extending SVGAttributes
|
||||
export interface LucideProps extends Partial<React.SVGProps<SVGSVGElement>> {
|
||||
|
||||
@@ -1,95 +1,5 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`Using lucide icon components should adjust the size, stroke color and stroke width 1`] = `
|
||||
<svg
|
||||
fill="none"
|
||||
height={48}
|
||||
stroke="red"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth={4}
|
||||
viewBox="0 0 24 24"
|
||||
width={48}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<rect
|
||||
height="18"
|
||||
rx="2"
|
||||
ry="2"
|
||||
width="18"
|
||||
x="3"
|
||||
y="3"
|
||||
/>
|
||||
<line
|
||||
x1="3"
|
||||
x2="21"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
<line
|
||||
x1="3"
|
||||
x2="21"
|
||||
y1="15"
|
||||
y2="15"
|
||||
/>
|
||||
<line
|
||||
x1="9"
|
||||
x2="9"
|
||||
y1="3"
|
||||
y2="21"
|
||||
/>
|
||||
<line
|
||||
x1="15"
|
||||
x2="15"
|
||||
y1="3"
|
||||
y2="21"
|
||||
/>
|
||||
</svg>
|
||||
`;
|
||||
exports[`Using lucide icon components should adjust the size, stroke color and stroke width 1`] = `"<svg xmlns=\\"http://www.w3.org/2000/svg\\" width=\\"48\\" height=\\"48\\" viewBox=\\"0 0 24 24\\" fill=\\"none\\" stroke=\\"red\\" stroke-width=\\"4\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" data-testid=\\"grid-icon\\"><rect x=\\"3\\" y=\\"3\\" width=\\"18\\" height=\\"18\\" rx=\\"2\\" ry=\\"2\\"></rect><line x1=\\"3\\" y1=\\"9\\" x2=\\"21\\" y2=\\"9\\"></line><line x1=\\"3\\" y1=\\"15\\" x2=\\"21\\" y2=\\"15\\"></line><line x1=\\"9\\" y1=\\"3\\" x2=\\"9\\" y2=\\"21\\"></line><line x1=\\"15\\" y1=\\"3\\" x2=\\"15\\" y2=\\"21\\"></line></svg>"`;
|
||||
|
||||
exports[`Using lucide icon components should render an component 1`] = `
|
||||
<svg
|
||||
fill="none"
|
||||
height={24}
|
||||
stroke="currentColor"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth={2}
|
||||
viewBox="0 0 24 24"
|
||||
width={24}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<rect
|
||||
height="18"
|
||||
rx="2"
|
||||
ry="2"
|
||||
width="18"
|
||||
x="3"
|
||||
y="3"
|
||||
/>
|
||||
<line
|
||||
x1="3"
|
||||
x2="21"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
<line
|
||||
x1="3"
|
||||
x2="21"
|
||||
y1="15"
|
||||
y2="15"
|
||||
/>
|
||||
<line
|
||||
x1="9"
|
||||
x2="9"
|
||||
y1="3"
|
||||
y2="21"
|
||||
/>
|
||||
<line
|
||||
x1="15"
|
||||
x2="15"
|
||||
y1="3"
|
||||
y2="21"
|
||||
/>
|
||||
</svg>
|
||||
`;
|
||||
exports[`Using lucide icon components should render an component 1`] = `"<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 x=\\"3\\" y=\\"3\\" width=\\"18\\" height=\\"18\\" rx=\\"2\\" ry=\\"2\\"></rect><line x1=\\"3\\" y1=\\"9\\" x2=\\"21\\" y2=\\"9\\"></line><line x1=\\"3\\" y1=\\"15\\" x2=\\"21\\" y2=\\"15\\"></line><line x1=\\"9\\" y1=\\"3\\" x2=\\"9\\" y2=\\"21\\"></line><line x1=\\"15\\" y1=\\"3\\" x2=\\"15\\" y2=\\"21\\"></line></svg>"`;
|
||||
|
||||
@@ -1,27 +1,31 @@
|
||||
import React from 'react';
|
||||
import renderer from 'react-test-renderer';
|
||||
import { render } from '@testing-library/react'
|
||||
import { Grid } from '../src/icons'
|
||||
|
||||
describe('Using lucide icon components', () => {
|
||||
it('should render an component', () => {
|
||||
const component = renderer.create(
|
||||
<Grid/>,
|
||||
);
|
||||
const { container } = render( <Grid/> );
|
||||
|
||||
let tree = component.toJSON();
|
||||
expect(tree).toMatchSnapshot();
|
||||
expect( container.innerHTML ).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it('should adjust the size, stroke color and stroke width', () => {
|
||||
const component = renderer.create(
|
||||
const testId = 'grid-icon';
|
||||
const { container, getByTestId } = render(
|
||||
<Grid
|
||||
data-testid={testId}
|
||||
size={48}
|
||||
stroke="red"
|
||||
strokeWidth={4}
|
||||
/>,
|
||||
);
|
||||
|
||||
let tree = component.toJSON();
|
||||
expect(tree).toMatchSnapshot();
|
||||
const { attributes } = getByTestId(testId);
|
||||
expect(attributes.stroke.value).toBe('red');
|
||||
expect(attributes.width.value).toBe('48');
|
||||
expect(attributes.height.value).toBe('48');
|
||||
expect(attributes['stroke-width'].value).toBe('4');
|
||||
|
||||
expect( container.innerHTML ).toMatchSnapshot();
|
||||
});
|
||||
})
|
||||
|
||||
@@ -2406,9 +2406,9 @@ has@^1.0.3:
|
||||
function-bind "^1.1.1"
|
||||
|
||||
hosted-git-info@^2.1.4:
|
||||
version "2.8.8"
|
||||
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
|
||||
integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
|
||||
version "2.8.9"
|
||||
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
|
||||
integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
|
||||
|
||||
html-encoding-sniffer@^2.0.1:
|
||||
version "2.0.1"
|
||||
@@ -3228,9 +3228,9 @@ lodash.sortby@^4.7.0:
|
||||
integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
|
||||
|
||||
lodash@^4.17.19:
|
||||
version "4.17.20"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
|
||||
integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
|
||||
version "4.17.21"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||
|
||||
loose-envify@^1.1.0, loose-envify@^1.4.0:
|
||||
version "1.4.0"
|
||||
|
||||
9
packages/lucide-vue-next/.npmignore
Normal file
@@ -0,0 +1,9 @@
|
||||
stats
|
||||
node_modules
|
||||
tests
|
||||
scripts
|
||||
build
|
||||
src
|
||||
babel.config.js
|
||||
jest.config.js
|
||||
rollup.config.js
|
||||
15
packages/lucide-vue-next/LICENSE
Normal file
@@ -0,0 +1,15 @@
|
||||
ISC License
|
||||
|
||||
Copyright (c) 2020, Lucide Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
107
packages/lucide-vue-next/README.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# Lucide Vue Next
|
||||
|
||||
Implementation of the lucide icon library for Vue 3 applications.
|
||||
|
||||
> What is lucide? Read it [here](https://github.com/lucide-icons/lucide#what-is-lucide).
|
||||
|
||||
> :warning: This version of lucide is for Vue 3, For Vue 2 got to [lucide-vue-next](https://github.com/lucide-icons/lucide/tree/master/packages/lucide-vue#lucide-vue)
|
||||
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
yarn add lucide-vue-next
|
||||
|
||||
# or
|
||||
|
||||
npm install lucide-vue-next
|
||||
```
|
||||
|
||||
## How to use
|
||||
|
||||
It's build with ESmodules so it's completely threeshakable.
|
||||
Each icon can be imported as a vue component.
|
||||
|
||||
### Example
|
||||
|
||||
You can pass additional props to adjust the icon.
|
||||
|
||||
``` vue
|
||||
<template>
|
||||
<Camera
|
||||
color="red"
|
||||
:size="32"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// Returns Vue component
|
||||
import { Camera } from 'lucide-vue-next';
|
||||
|
||||
export default {
|
||||
name: "My Component",
|
||||
components: { Camera }
|
||||
}
|
||||
|
||||
</script>
|
||||
```
|
||||
|
||||
### Props
|
||||
|
||||
| name | type | default
|
||||
| ------------ | -------- | --------
|
||||
| `size` | *Number* | 24
|
||||
| `color` | *String* | currentColor
|
||||
| `strokeWidth`| *Number* | 2
|
||||
| `defaultClass`| *String* | lucide-icon
|
||||
|
||||
### Custom props
|
||||
|
||||
You can also pass custom props that will be added in the svg as attributes.
|
||||
|
||||
``` vue
|
||||
<template>
|
||||
<Camera fill="red" />
|
||||
</template>
|
||||
```
|
||||
|
||||
### One generic icon component
|
||||
|
||||
It is possible to create one generic icon component to load icons.
|
||||
|
||||
> :warning: Example below importing all EsModules, caution using this example, not recommended when you using bundlers, your application build size will grow strongly.
|
||||
|
||||
#### Icon Component Example
|
||||
|
||||
``` vue
|
||||
<template>
|
||||
<component :is="icon" />
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import * as icons from "lucide-vue-next";
|
||||
|
||||
export default {
|
||||
props: {
|
||||
name: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
icon() {
|
||||
return icons[this.name];
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
```
|
||||
|
||||
##### Then you can use it like this
|
||||
|
||||
``` vue
|
||||
<template>
|
||||
<div id="app">
|
||||
<Icon name="Airplay" />
|
||||
</div>
|
||||
</template>
|
||||
```
|
||||
14
packages/lucide-vue-next/babel.config.js
Normal file
@@ -0,0 +1,14 @@
|
||||
const mainConfig = require('../../babel.config');
|
||||
|
||||
module.exports = {
|
||||
presets: [
|
||||
[
|
||||
'@babel/env',
|
||||
{
|
||||
loose: true,
|
||||
modules: false,
|
||||
},
|
||||
],
|
||||
],
|
||||
env: mainConfig.env,
|
||||
};
|
||||
14
packages/lucide-vue-next/jest.config.js
Normal file
@@ -0,0 +1,14 @@
|
||||
module.exports = {
|
||||
verbose: true,
|
||||
roots: ['<rootDir>/src/', '<rootDir>/tests/'],
|
||||
moduleFileExtensions: ['js'],
|
||||
transform: {
|
||||
'^.+\\.js$': 'babel-jest',
|
||||
'^.+\\.vue$': 'vue-jest',
|
||||
},
|
||||
transformIgnorePatterns: [`/node_modules`],
|
||||
snapshotSerializers: ['jest-serializer-vue'],
|
||||
moduleNameMapper: {
|
||||
'^@/(.*)$': '<rootDir>/src/$1',
|
||||
},
|
||||
};
|
||||
41
packages/lucide-vue-next/package.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"name": "lucide-vue-next",
|
||||
"version": "0.15.17-beta.0",
|
||||
"author": "Eric Fennis",
|
||||
"description": "Lucide Vue 3 Package",
|
||||
"license": "ISC",
|
||||
"homepage": "https://lucide.dev",
|
||||
"bugs": "https://github.com/lucide-icons/lucide/issues",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/lucide-icons/lucide.git",
|
||||
"directory": "packages/lucide-vue-next"
|
||||
},
|
||||
"amdName": "lucide-vue-next",
|
||||
"source": "build/lucide-vue-next.js",
|
||||
"main": "dist/cjs/lucide-vue-next.js",
|
||||
"main:umd": "dist/umd/lucide-vue-next.js",
|
||||
"module": "dist/esm/lucide-vue-next.js",
|
||||
"unpkg": "dist/umd/lucide-vue-next.min.js",
|
||||
"typings": "dist/lucide-vue-next.d.ts",
|
||||
"scripts": {
|
||||
"build": "yarn clean && yarn build:icons && yarn build:es && yarn build:types && yarn build:bundles",
|
||||
"clean": "rm -rf dist && rm -rf ./src/icons/*.js",
|
||||
"build:icons": "yarn --cwd ../../ build:icons --output=../packages/lucide-vue-next/src --templateSrc=../packages/lucide-vue-next/scripts/exportTemplate",
|
||||
"build:es": "babel src -d dist/esm",
|
||||
"build:types": "yarn --cwd ../../ babel-node packages/lucide-vue-next/scripts/buildTypes.js",
|
||||
"build:bundles": "yarn --cwd ../../ rollup -c packages/lucide-vue-next/rollup.config.js",
|
||||
"test": "jest",
|
||||
"test:watch": "jest --watchAll"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/compiler-sfc": "^3.0.0",
|
||||
"@vue/test-utils": "^2.0.0-rc.6",
|
||||
"jest-serializer-vue": "^2.0.2",
|
||||
"vue-jest": "^5.0.0-alpha.7",
|
||||
"vue": "3.0.6"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": "^3.0.0"
|
||||
}
|
||||
}
|
||||
47
packages/lucide-vue-next/rollup.config.js
Normal file
@@ -0,0 +1,47 @@
|
||||
import plugins from '../../rollup.plugins';
|
||||
import pkg from './package.json';
|
||||
|
||||
const packageName = 'LucideVueNext';
|
||||
const outputFileName = 'lucide-vue-next';
|
||||
const rootDir = 'packages/lucide-vue-next'; // It runs from the root
|
||||
const outputDir = `${rootDir}/dist`;
|
||||
const inputs = [`${rootDir}/src/lucide-vue-next.js`];
|
||||
const bundles = [
|
||||
{
|
||||
format: 'umd',
|
||||
inputs,
|
||||
outputDir,
|
||||
minify: true,
|
||||
},
|
||||
{
|
||||
format: 'umd',
|
||||
inputs,
|
||||
outputDir,
|
||||
},
|
||||
{
|
||||
format: 'cjs',
|
||||
inputs,
|
||||
outputDir,
|
||||
},
|
||||
];
|
||||
|
||||
const configs = bundles
|
||||
.map(({ inputs, outputDir, format, minify }) =>
|
||||
inputs.map(input => ({
|
||||
input,
|
||||
plugins: plugins(pkg, minify),
|
||||
external: ['vue'],
|
||||
output: {
|
||||
name: packageName,
|
||||
file: `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.js`,
|
||||
format,
|
||||
sourcemap: true,
|
||||
globals: {
|
||||
vue: 'vue',
|
||||
},
|
||||
},
|
||||
})),
|
||||
)
|
||||
.flat();
|
||||
|
||||
export default configs;
|
||||
37
packages/lucide-vue-next/scripts/buildTypes.js
Normal file
@@ -0,0 +1,37 @@
|
||||
import path from 'path';
|
||||
|
||||
import { readSvgDirectory, resetFile, appendFile, toPascalCase } from '../../../scripts/helpers';
|
||||
import defaultAttributes from '../src/defaultAttributes';
|
||||
|
||||
const TARGET_DIR = path.join(__dirname, '../dist');
|
||||
const ICONS_DIR = path.resolve(__dirname, '../../../icons');
|
||||
const TYPES_FILE_NAME = 'lucide-vue-next.d.ts';
|
||||
|
||||
// Generates header of d.ts file include some types and functions
|
||||
const typeDefinitions = `\
|
||||
import { Component } from 'vue';
|
||||
declare module 'lucide-vue-next'
|
||||
|
||||
// Create interface extending SVGAttributes
|
||||
export interface SVGProps extends Partial<SVGElement> ${JSON.stringify(defaultAttributes, null, 2)}
|
||||
|
||||
// Generated icons
|
||||
`;
|
||||
|
||||
resetFile(TYPES_FILE_NAME, TARGET_DIR);
|
||||
appendFile(typeDefinitions, TYPES_FILE_NAME, TARGET_DIR);
|
||||
|
||||
const svgFiles = readSvgDirectory(ICONS_DIR);
|
||||
|
||||
svgFiles.forEach(svgFile => {
|
||||
const nameSvg = path.basename(svgFile, '.svg');
|
||||
const componentName = toPascalCase(nameSvg);
|
||||
|
||||
appendFile(
|
||||
`export declare const ${componentName}: (props: SVGProps) => Component;\n`,
|
||||
TYPES_FILE_NAME,
|
||||
TARGET_DIR,
|
||||
);
|
||||
});
|
||||
|
||||
console.log(`Generated ${TYPES_FILE_NAME} file with`, svgFiles.length, 'icons');
|
||||
7
packages/lucide-vue-next/scripts/exportTemplate.js
Normal file
@@ -0,0 +1,7 @@
|
||||
export default ({ componentName, children }) => `
|
||||
import createVueComponent from '../createVueComponent';
|
||||
|
||||
const ${componentName} = createVueComponent('${componentName}Icon', ${JSON.stringify(children)});
|
||||
|
||||
export default ${componentName};
|
||||
`;
|
||||
19
packages/lucide-vue-next/src/createVueComponent.js
Normal file
@@ -0,0 +1,19 @@
|
||||
import { h } from 'vue';
|
||||
import defaultAttributes from './defaultAttributes';
|
||||
|
||||
const createVueComponent = (iconName, iconNode) => (props, context) =>
|
||||
h(
|
||||
'svg',
|
||||
{
|
||||
...defaultAttributes,
|
||||
...{
|
||||
width: props.size || defaultAttributes.width,
|
||||
height: props.size || defaultAttributes.height,
|
||||
},
|
||||
...context.attrs,
|
||||
...props,
|
||||
},
|
||||
iconNode.map(child => h(...child)),
|
||||
);
|
||||
|
||||
export default createVueComponent;
|
||||
11
packages/lucide-vue-next/src/defaultAttributes.js
Normal file
@@ -0,0 +1,11 @@
|
||||
export default {
|
||||
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',
|
||||
};
|
||||
1
packages/lucide-vue-next/src/icons/.gitkeep
Normal file
@@ -0,0 +1 @@
|
||||
Folder for generated icons
|
||||
1
packages/lucide-vue-next/src/lucide-vue-next.js
Normal file
@@ -0,0 +1 @@
|
||||
export * from './icons';
|
||||
@@ -0,0 +1,577 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`Using lucide icon components should add a class to the element 1`] = `
|
||||
VueWrapper {
|
||||
"__app": Object {
|
||||
"_component": Object {
|
||||
"__emits": Object {},
|
||||
"__props": Array [
|
||||
Object {},
|
||||
Array [],
|
||||
],
|
||||
"name": "VTU_ROOT",
|
||||
"render": [Function],
|
||||
},
|
||||
"_container": <div
|
||||
data-v-app=""
|
||||
>
|
||||
<svg
|
||||
class="lucide-icon my-icon"
|
||||
fill="none"
|
||||
height="24"
|
||||
stroke="currentColor"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<circle
|
||||
cx="12"
|
||||
cy="12"
|
||||
r="10"
|
||||
/>
|
||||
<path
|
||||
d="M8 14s1.5 2 4 2 4-2 4-2"
|
||||
/>
|
||||
<line
|
||||
x1="9"
|
||||
x2="9.01"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
<line
|
||||
x1="15"
|
||||
x2="15.01"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
</svg>
|
||||
</div>,
|
||||
"_context": Object {
|
||||
"app": [Circular],
|
||||
"components": Object {
|
||||
"transition": Object {
|
||||
"name": "transition",
|
||||
"props": undefined,
|
||||
"render": [Function],
|
||||
},
|
||||
"transition-group": Object {
|
||||
"name": "transition-group",
|
||||
"props": undefined,
|
||||
"render": [Function],
|
||||
},
|
||||
},
|
||||
"config": Object {
|
||||
"errorHandler": undefined,
|
||||
"globalProperties": Object {},
|
||||
"isCustomElement": [Function],
|
||||
"isNativeTag": [Function],
|
||||
"optionMergeStrategies": Object {},
|
||||
"performance": false,
|
||||
"warnHandler": undefined,
|
||||
},
|
||||
"directives": Object {},
|
||||
"mixins": Array [
|
||||
Object {
|
||||
"__emits": null,
|
||||
"__props": Array [],
|
||||
"beforeCreate": [Function],
|
||||
},
|
||||
],
|
||||
"provides": Object {},
|
||||
"reload": [Function],
|
||||
},
|
||||
"_props": null,
|
||||
"_uid": 2,
|
||||
"component": [Function],
|
||||
"config": Object {
|
||||
"errorHandler": undefined,
|
||||
"globalProperties": Object {},
|
||||
"isCustomElement": [Function],
|
||||
"isNativeTag": [Function],
|
||||
"optionMergeStrategies": Object {},
|
||||
"performance": false,
|
||||
"warnHandler": undefined,
|
||||
},
|
||||
"directive": [Function],
|
||||
"mixin": [Function],
|
||||
"mount": [Function],
|
||||
"provide": [Function],
|
||||
"unmount": [Function],
|
||||
"use": [Function],
|
||||
"version": "3.0.6",
|
||||
},
|
||||
"__setProps": [Function],
|
||||
"componentVM": Object {
|
||||
"hasOwnProperty": [Function],
|
||||
},
|
||||
"rootVM": Object {},
|
||||
"wrapperElement": <svg
|
||||
class="lucide-icon my-icon"
|
||||
fill="none"
|
||||
height="24"
|
||||
stroke="currentColor"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<circle
|
||||
cx="12"
|
||||
cy="12"
|
||||
r="10"
|
||||
/>
|
||||
<path
|
||||
d="M8 14s1.5 2 4 2 4-2 4-2"
|
||||
/>
|
||||
<line
|
||||
x1="9"
|
||||
x2="9.01"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
<line
|
||||
x1="15"
|
||||
x2="15.01"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
</svg>,
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Using lucide icon components should add a style attribute to the element 1`] = `
|
||||
VueWrapper {
|
||||
"__app": Object {
|
||||
"_component": Object {
|
||||
"__emits": Object {},
|
||||
"__props": Array [
|
||||
Object {},
|
||||
Array [],
|
||||
],
|
||||
"name": "VTU_ROOT",
|
||||
"render": [Function],
|
||||
},
|
||||
"_container": <div
|
||||
data-v-app=""
|
||||
>
|
||||
<svg
|
||||
fill="none"
|
||||
height="24"
|
||||
stroke="currentColor"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
style="position: absolute;"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<circle
|
||||
cx="12"
|
||||
cy="12"
|
||||
r="10"
|
||||
/>
|
||||
<path
|
||||
d="M8 14s1.5 2 4 2 4-2 4-2"
|
||||
/>
|
||||
<line
|
||||
x1="9"
|
||||
x2="9.01"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
<line
|
||||
x1="15"
|
||||
x2="15.01"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
</svg>
|
||||
</div>,
|
||||
"_context": Object {
|
||||
"app": [Circular],
|
||||
"components": Object {
|
||||
"transition": Object {
|
||||
"name": "transition",
|
||||
"props": undefined,
|
||||
"render": [Function],
|
||||
},
|
||||
"transition-group": Object {
|
||||
"name": "transition-group",
|
||||
"props": undefined,
|
||||
"render": [Function],
|
||||
},
|
||||
},
|
||||
"config": Object {
|
||||
"errorHandler": undefined,
|
||||
"globalProperties": Object {},
|
||||
"isCustomElement": [Function],
|
||||
"isNativeTag": [Function],
|
||||
"optionMergeStrategies": Object {},
|
||||
"performance": false,
|
||||
"warnHandler": undefined,
|
||||
},
|
||||
"directives": Object {},
|
||||
"mixins": Array [
|
||||
Object {
|
||||
"__emits": null,
|
||||
"__props": Array [],
|
||||
"beforeCreate": [Function],
|
||||
},
|
||||
],
|
||||
"provides": Object {},
|
||||
"reload": [Function],
|
||||
},
|
||||
"_props": null,
|
||||
"_uid": 3,
|
||||
"component": [Function],
|
||||
"config": Object {
|
||||
"errorHandler": undefined,
|
||||
"globalProperties": Object {},
|
||||
"isCustomElement": [Function],
|
||||
"isNativeTag": [Function],
|
||||
"optionMergeStrategies": Object {},
|
||||
"performance": false,
|
||||
"warnHandler": undefined,
|
||||
},
|
||||
"directive": [Function],
|
||||
"mixin": [Function],
|
||||
"mount": [Function],
|
||||
"provide": [Function],
|
||||
"unmount": [Function],
|
||||
"use": [Function],
|
||||
"version": "3.0.6",
|
||||
},
|
||||
"__setProps": [Function],
|
||||
"componentVM": Object {
|
||||
"hasOwnProperty": [Function],
|
||||
},
|
||||
"rootVM": Object {},
|
||||
"wrapperElement": <svg
|
||||
fill="none"
|
||||
height="24"
|
||||
stroke="currentColor"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
style="position: absolute;"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<circle
|
||||
cx="12"
|
||||
cy="12"
|
||||
r="10"
|
||||
/>
|
||||
<path
|
||||
d="M8 14s1.5 2 4 2 4-2 4-2"
|
||||
/>
|
||||
<line
|
||||
x1="9"
|
||||
x2="9.01"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
<line
|
||||
x1="15"
|
||||
x2="15.01"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
</svg>,
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Using lucide icon components should adjust the size, stroke color and stroke width 1`] = `
|
||||
VueWrapper {
|
||||
"__app": Object {
|
||||
"_component": Object {
|
||||
"__emits": Object {},
|
||||
"__props": Array [
|
||||
Object {},
|
||||
Array [],
|
||||
],
|
||||
"name": "VTU_ROOT",
|
||||
"render": [Function],
|
||||
},
|
||||
"_container": <div
|
||||
data-v-app=""
|
||||
>
|
||||
<svg
|
||||
fill="none"
|
||||
height="48"
|
||||
size="48"
|
||||
stroke="red"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
strokeWidth="4"
|
||||
viewBox="0 0 24 24"
|
||||
width="48"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<circle
|
||||
cx="12"
|
||||
cy="12"
|
||||
r="10"
|
||||
/>
|
||||
<path
|
||||
d="M8 14s1.5 2 4 2 4-2 4-2"
|
||||
/>
|
||||
<line
|
||||
x1="9"
|
||||
x2="9.01"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
<line
|
||||
x1="15"
|
||||
x2="15.01"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
</svg>
|
||||
</div>,
|
||||
"_context": Object {
|
||||
"app": [Circular],
|
||||
"components": Object {
|
||||
"transition": Object {
|
||||
"name": "transition",
|
||||
"props": undefined,
|
||||
"render": [Function],
|
||||
},
|
||||
"transition-group": Object {
|
||||
"name": "transition-group",
|
||||
"props": undefined,
|
||||
"render": [Function],
|
||||
},
|
||||
},
|
||||
"config": Object {
|
||||
"errorHandler": undefined,
|
||||
"globalProperties": Object {},
|
||||
"isCustomElement": [Function],
|
||||
"isNativeTag": [Function],
|
||||
"optionMergeStrategies": Object {},
|
||||
"performance": false,
|
||||
"warnHandler": undefined,
|
||||
},
|
||||
"directives": Object {},
|
||||
"mixins": Array [
|
||||
Object {
|
||||
"__emits": null,
|
||||
"__props": Array [],
|
||||
"beforeCreate": [Function],
|
||||
},
|
||||
],
|
||||
"provides": Object {},
|
||||
"reload": [Function],
|
||||
},
|
||||
"_props": null,
|
||||
"_uid": 1,
|
||||
"component": [Function],
|
||||
"config": Object {
|
||||
"errorHandler": undefined,
|
||||
"globalProperties": Object {},
|
||||
"isCustomElement": [Function],
|
||||
"isNativeTag": [Function],
|
||||
"optionMergeStrategies": Object {},
|
||||
"performance": false,
|
||||
"warnHandler": undefined,
|
||||
},
|
||||
"directive": [Function],
|
||||
"mixin": [Function],
|
||||
"mount": [Function],
|
||||
"provide": [Function],
|
||||
"unmount": [Function],
|
||||
"use": [Function],
|
||||
"version": "3.0.6",
|
||||
},
|
||||
"__setProps": [Function],
|
||||
"componentVM": Object {
|
||||
"hasOwnProperty": [Function],
|
||||
},
|
||||
"rootVM": Object {},
|
||||
"wrapperElement": <svg
|
||||
fill="none"
|
||||
height="48"
|
||||
size="48"
|
||||
stroke="red"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
strokeWidth="4"
|
||||
viewBox="0 0 24 24"
|
||||
width="48"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<circle
|
||||
cx="12"
|
||||
cy="12"
|
||||
r="10"
|
||||
/>
|
||||
<path
|
||||
d="M8 14s1.5 2 4 2 4-2 4-2"
|
||||
/>
|
||||
<line
|
||||
x1="9"
|
||||
x2="9.01"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
<line
|
||||
x1="15"
|
||||
x2="15.01"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
</svg>,
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Using lucide icon components should render an component 1`] = `
|
||||
VueWrapper {
|
||||
"__app": Object {
|
||||
"_component": Object {
|
||||
"__emits": Object {},
|
||||
"__props": Array [
|
||||
Object {},
|
||||
Array [],
|
||||
],
|
||||
"name": "VTU_ROOT",
|
||||
"render": [Function],
|
||||
},
|
||||
"_container": <div
|
||||
data-v-app=""
|
||||
>
|
||||
<svg
|
||||
fill="none"
|
||||
height="24"
|
||||
stroke="currentColor"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<circle
|
||||
cx="12"
|
||||
cy="12"
|
||||
r="10"
|
||||
/>
|
||||
<path
|
||||
d="M8 14s1.5 2 4 2 4-2 4-2"
|
||||
/>
|
||||
<line
|
||||
x1="9"
|
||||
x2="9.01"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
<line
|
||||
x1="15"
|
||||
x2="15.01"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
</svg>
|
||||
</div>,
|
||||
"_context": Object {
|
||||
"app": [Circular],
|
||||
"components": Object {
|
||||
"transition": Object {
|
||||
"name": "transition",
|
||||
"props": undefined,
|
||||
"render": [Function],
|
||||
},
|
||||
"transition-group": Object {
|
||||
"name": "transition-group",
|
||||
"props": undefined,
|
||||
"render": [Function],
|
||||
},
|
||||
},
|
||||
"config": Object {
|
||||
"errorHandler": undefined,
|
||||
"globalProperties": Object {},
|
||||
"isCustomElement": [Function],
|
||||
"isNativeTag": [Function],
|
||||
"optionMergeStrategies": Object {},
|
||||
"performance": false,
|
||||
"warnHandler": undefined,
|
||||
},
|
||||
"directives": Object {},
|
||||
"mixins": Array [
|
||||
Object {
|
||||
"__emits": null,
|
||||
"__props": Array [],
|
||||
"beforeCreate": [Function],
|
||||
},
|
||||
],
|
||||
"provides": Object {},
|
||||
"reload": [Function],
|
||||
},
|
||||
"_props": null,
|
||||
"_uid": 0,
|
||||
"component": [Function],
|
||||
"config": Object {
|
||||
"errorHandler": undefined,
|
||||
"globalProperties": Object {},
|
||||
"isCustomElement": [Function],
|
||||
"isNativeTag": [Function],
|
||||
"optionMergeStrategies": Object {},
|
||||
"performance": false,
|
||||
"warnHandler": undefined,
|
||||
},
|
||||
"directive": [Function],
|
||||
"mixin": [Function],
|
||||
"mount": [Function],
|
||||
"provide": [Function],
|
||||
"unmount": [Function],
|
||||
"use": [Function],
|
||||
"version": "3.0.6",
|
||||
},
|
||||
"__setProps": [Function],
|
||||
"componentVM": Object {
|
||||
"hasOwnProperty": [Function],
|
||||
},
|
||||
"rootVM": Object {},
|
||||
"wrapperElement": <svg
|
||||
fill="none"
|
||||
height="24"
|
||||
stroke="currentColor"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<circle
|
||||
cx="12"
|
||||
cy="12"
|
||||
r="10"
|
||||
/>
|
||||
<path
|
||||
d="M8 14s1.5 2 4 2 4-2 4-2"
|
||||
/>
|
||||
<line
|
||||
x1="9"
|
||||
x2="9.01"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
<line
|
||||
x1="15"
|
||||
x2="15.01"
|
||||
y1="9"
|
||||
y2="9"
|
||||
/>
|
||||
</svg>,
|
||||
}
|
||||
`;
|
||||
44
packages/lucide-vue-next/tests/lucide-vue-next.spec.js
Normal file
@@ -0,0 +1,44 @@
|
||||
import { mount } from '@vue/test-utils'
|
||||
import { Smile } from '../src/icons'
|
||||
|
||||
describe('Using lucide icon components', () => {
|
||||
it('should render an component', () => {
|
||||
const wrapper = mount(Smile)
|
||||
expect(wrapper).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it('should adjust the size, stroke color and stroke width', () => {
|
||||
const wrapper = mount(Smile, {
|
||||
propsData: {
|
||||
size: 48,
|
||||
stroke: 'red',
|
||||
strokeWidth: 4
|
||||
}
|
||||
})
|
||||
|
||||
expect(wrapper).toMatchSnapshot();
|
||||
});
|
||||
|
||||
|
||||
it('should add a class to the element', () => {
|
||||
const wrapper = mount(Smile, {
|
||||
attrs: {
|
||||
class: "lucide-icon my-icon"
|
||||
}
|
||||
})
|
||||
|
||||
expect(wrapper).toMatchSnapshot();
|
||||
expect(String(wrapper.classes())).toBe(String(['lucide-icon', 'my-icon']))
|
||||
});
|
||||
|
||||
it('should add a style attribute to the element', () => {
|
||||
const wrapper = mount(Smile, {
|
||||
attrs: {
|
||||
style: 'position: absolute',
|
||||
}
|
||||
})
|
||||
|
||||
expect(wrapper).toMatchSnapshot();
|
||||
expect(wrapper.attributes('style')).toContain('position: absolute')
|
||||
});
|
||||
});
|
||||
4028
packages/lucide-vue-next/yarn.lock
Normal file
@@ -4,6 +4,8 @@ Implementation of the lucide icon library for Vue applications.
|
||||
|
||||
> What is lucide? Read it [here](https://github.com/lucide-icons/lucide#what-is-lucide).
|
||||
|
||||
> :warning: This version of lucide is for Vue 2, For Vue 3 got to [lucide-vue-next](https://github.com/lucide-icons/lucide/tree/master/packages/lucide-vue-next#lucide-vue-next)
|
||||
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "lucide-vue",
|
||||
"version": "0.15.6",
|
||||
"version": "0.15.17",
|
||||
"author": "Eric Fennis",
|
||||
"description": "Lucide Vue Package",
|
||||
"license": "ISC",
|
||||
@@ -24,7 +24,7 @@
|
||||
"build": "yarn clean && yarn build:icons && yarn build:es && yarn build:bundles",
|
||||
"clean": "rm -rf dist && rm -rf stats && rm -rf ./src/icons/*.js",
|
||||
"build:icons": "yarn --cwd ../../ build:icons --output=../packages/lucide-vue/src --templateSrc=../packages/lucide-vue/scripts/exportTemplate",
|
||||
"build:es": "yarn --cwd ../../ babel packages/lucide-vue/src -d packages/lucide-vue/dist/esm",
|
||||
"build:es": "babel src -d dist/esm",
|
||||
"build:bundles": "yarn --cwd ../../ rollup -c packages/lucide-vue/rollup.config.js",
|
||||
"test": "jest",
|
||||
"test:watch": "jest --watchAll"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "lucide",
|
||||
"description": "Lucide is a community-run fork of Feather Icons, open for anyone to contribute icons.",
|
||||
"version": "0.15.6",
|
||||
"version": "0.15.17",
|
||||
"license": "ISC",
|
||||
"homepage": "https://lucide.dev",
|
||||
"bugs": "https://github.com/lucide-icons/lucide/issues",
|
||||
|
||||
@@ -11,16 +11,18 @@
|
||||
"test": "jest"
|
||||
},
|
||||
"dependencies": {
|
||||
"@chakra-ui/core": "^1.0.0-rc.8",
|
||||
"@chakra-ui/react": "^1.6.0",
|
||||
"@emotion/react": "^11",
|
||||
"@emotion/styled": "^11",
|
||||
"downloadjs": "^1.4.7",
|
||||
"framer-motion": "^3.3.0",
|
||||
"framer-motion": "^4",
|
||||
"jszip": "^3.4.0",
|
||||
"lodash": "^4.17.20",
|
||||
"lucide-react": "0.14.0",
|
||||
"next": "^10.0.4",
|
||||
"react": "^16.13.1",
|
||||
"react-color": "2.17.3",
|
||||
"react-dom": "^16.13.1",
|
||||
"react": "^17.0.1",
|
||||
"react-color": "^2.19.3",
|
||||
"react-dom": "^17.0.1",
|
||||
"react-svg-loader": "^3.0.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -35,7 +37,6 @@
|
||||
"babel-loader": "^8.1.0",
|
||||
"cheerio": "^1.0.0-rc.3",
|
||||
"jest": "^26.5.2",
|
||||
"react-test-renderer": "^16.13.1",
|
||||
"typescript": "^3.9.5"
|
||||
"typescript": "^4.2.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
import { SyntheticEvent, useEffect, useRef, useState } from 'react';
|
||||
import { FormLabel, Icon, Input, InputGroup, InputLeftElement } from '@chakra-ui/core';
|
||||
import { CustomPicker } from 'react-color';
|
||||
|
||||
const { Saturation, Hue } = require('react-color/lib/components/common');
|
||||
import { FormLabel, Icon, Input, InputGroup, InputLeftElement } from '@chakra-ui/react';
|
||||
import { Saturation, Hue, ColorWrap as CustomPicker } from 'react-color/lib/components/common';
|
||||
|
||||
type ColorPickerProps = {
|
||||
value: string;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Button, Flex, Link, WrapItem, Text, Wrap } from "@chakra-ui/core";
|
||||
import { Button, Flex, Link, WrapItem, Text, Wrap } from "@chakra-ui/react";
|
||||
import download from "downloadjs";
|
||||
import JSZip from "jszip";
|
||||
import { Download, Github } from 'lucide-react';
|
||||
|
||||
@@ -18,7 +18,7 @@ import {
|
||||
SliderTrack,
|
||||
Flex,
|
||||
Text,
|
||||
} from '@chakra-ui/core';
|
||||
} from '@chakra-ui/react';
|
||||
import ColorPicker from './ColorPicker';
|
||||
|
||||
export function IconCustomizerDrawer() {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Box, Text, IconButton, useColorMode, Flex, Slide, ButtonGroup, Button, useToast, Heading, Avatar, AvatarGroup, Link, Tooltip, useMediaQuery, useDisclosure } from "@chakra-ui/core";
|
||||
import { Box, Text, IconButton, useColorMode, Flex, Slide, ButtonGroup, Button, useToast, Heading, Avatar, AvatarGroup, Link, Tooltip, useMediaQuery, useDisclosure } from "@chakra-ui/react";
|
||||
import theme from "../lib/theme";
|
||||
import download from 'downloadjs';
|
||||
import copy from "copy-to-clipboard";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Button, Flex, Grid, Text, useToast } from "@chakra-ui/core";
|
||||
import { Button, Flex, Grid, Text, useToast } from "@chakra-ui/react";
|
||||
import download from 'downloadjs';
|
||||
import Link from 'next/link'
|
||||
import copy from "copy-to-clipboard";
|
||||
|
||||
@@ -6,7 +6,7 @@ import {
|
||||
Text,
|
||||
useColorMode,
|
||||
Icon,
|
||||
} from '@chakra-ui/core';
|
||||
} from '@chakra-ui/react';
|
||||
import IconList from './IconList';
|
||||
import { useEffect, useMemo, useRef, useState } from 'react';
|
||||
import useSearch from '../lib/useSearch';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Box, Divider, Flex, Text, Link, Icon, useColorMode, useColorModeValue, IconButton } from "@chakra-ui/core";
|
||||
import { Box, Divider, Flex, Text, Link, Icon, useColorMode, useColorModeValue, IconButton } from "@chakra-ui/react";
|
||||
import { useKeyBindings } from "../lib/key";
|
||||
import { useRouter } from "next/router";
|
||||
import NextLink from "next/link"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Box, Tooltip, useColorMode } from "@chakra-ui/core";
|
||||
import { Box, Tooltip, useColorMode } from "@chakra-ui/react";
|
||||
import theme from '../lib/theme';
|
||||
|
||||
const ModifiedTooltip = ({}) => {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { theme as chakraTheme } from "@chakra-ui/core";
|
||||
import { theme as chakraTheme } from "@chakra-ui/react";
|
||||
|
||||
const theme = {
|
||||
...chakraTheme,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ChakraProvider } from '@chakra-ui/core';
|
||||
import { ChakraProvider } from '@chakra-ui/react';
|
||||
import customTheme from '../lib/theme';
|
||||
import '../assets/styling.css';
|
||||
import Head from 'next/head';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import Document, { Head, Html, Main, NextScript } from "next/document";
|
||||
import { ColorModeScript } from "@chakra-ui/core"
|
||||
import { ColorModeScript } from "@chakra-ui/react"
|
||||
|
||||
class MyDocument extends Document {
|
||||
render() {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es5",
|
||||
"target": "ESNext",
|
||||
"lib": ["dom", "dom.iterable", "esnext"],
|
||||
"allowJs": true,
|
||||
"skipLibCheck": true,
|
||||
@@ -14,6 +14,6 @@
|
||||
"isolatedModules": true,
|
||||
"jsx": "preserve"
|
||||
},
|
||||
"exclude": ["node_modules"],
|
||||
"exclude": ["node_modules", "use-popper.d.ts"],
|
||||
"include": ["next-env.d.ts", "src/**/*.ts", "src/**/*.tsx"]
|
||||
}
|
||||
|
||||
4533
site/yarn.lock
379
tags.json
@@ -13,7 +13,9 @@
|
||||
"alarm-check": [
|
||||
"done"
|
||||
],
|
||||
"alarm-clock": [],
|
||||
"alarm-clock": [
|
||||
"morning"
|
||||
],
|
||||
"alarm-minus": [
|
||||
"remove"
|
||||
],
|
||||
@@ -80,18 +82,42 @@
|
||||
"key",
|
||||
"forward"
|
||||
],
|
||||
"arrow-down": [],
|
||||
"arrow-down-circle": [],
|
||||
"arrow-down-left": [],
|
||||
"arrow-down-right": [],
|
||||
"arrow-left": [],
|
||||
"arrow-left-circle": [],
|
||||
"arrow-right": [],
|
||||
"arrow-right-circle": [],
|
||||
"arrow-up": [],
|
||||
"arrow-up-circle": [],
|
||||
"arrow-up-left": [],
|
||||
"arrow-up-right": [],
|
||||
"arrow-down": [
|
||||
"direction"
|
||||
],
|
||||
"arrow-down-circle": [
|
||||
"direction"
|
||||
],
|
||||
"arrow-down-left": [
|
||||
"direction"
|
||||
],
|
||||
"arrow-down-right": [
|
||||
"direction"
|
||||
],
|
||||
"arrow-left": [
|
||||
"direction"
|
||||
],
|
||||
"arrow-left-circle": [
|
||||
"direction"
|
||||
],
|
||||
"arrow-right": [
|
||||
"direction"
|
||||
],
|
||||
"arrow-right-circle": [
|
||||
"direction"
|
||||
],
|
||||
"arrow-up": [
|
||||
"direction"
|
||||
],
|
||||
"arrow-up-circle": [
|
||||
"direction"
|
||||
],
|
||||
"arrow-up-left": [
|
||||
"direction"
|
||||
],
|
||||
"arrow-up-right": [
|
||||
"direction"
|
||||
],
|
||||
"asterisk": [
|
||||
"reference"
|
||||
],
|
||||
@@ -131,9 +157,18 @@
|
||||
"power",
|
||||
"electricity"
|
||||
],
|
||||
"battery-full": [],
|
||||
"battery-low": [],
|
||||
"battery-medium": [],
|
||||
"battery-full": [
|
||||
"power",
|
||||
"electricity"
|
||||
],
|
||||
"battery-low": [
|
||||
"power",
|
||||
"electricity"
|
||||
],
|
||||
"battery-medium": [
|
||||
"power",
|
||||
"electricity"
|
||||
],
|
||||
"beaker": [
|
||||
"cup"
|
||||
],
|
||||
@@ -171,7 +206,13 @@
|
||||
"transport",
|
||||
"trip"
|
||||
],
|
||||
"binary": [],
|
||||
"binary": [
|
||||
"code",
|
||||
"digits",
|
||||
"computer",
|
||||
"zero",
|
||||
"one"
|
||||
],
|
||||
"bitcoin": [
|
||||
"currency",
|
||||
"money",
|
||||
@@ -234,6 +275,11 @@
|
||||
"paint",
|
||||
"color"
|
||||
],
|
||||
"bug": [
|
||||
"issue",
|
||||
"report",
|
||||
"insect"
|
||||
],
|
||||
"building": [
|
||||
"organisation",
|
||||
"organization"
|
||||
@@ -280,14 +326,33 @@
|
||||
"check-square": [
|
||||
"done"
|
||||
],
|
||||
"chevron-down": [],
|
||||
"chevron-left": [],
|
||||
"chevron-right": [],
|
||||
"chevron-up": [],
|
||||
"chevrons-down": [],
|
||||
"chevrons-left": [],
|
||||
"chevrons-right": [],
|
||||
"chevrons-up": [],
|
||||
"chevron-down": [
|
||||
"arrow"
|
||||
],
|
||||
"chevron-left": [
|
||||
"arrow"
|
||||
],
|
||||
"chevron-right": [
|
||||
"arrow"
|
||||
],
|
||||
"chevron-up": [
|
||||
"arrow"
|
||||
],
|
||||
"chevrons-down": [
|
||||
"arrow"
|
||||
],
|
||||
"chevrons-left": [
|
||||
"arrow"
|
||||
],
|
||||
"chevrons-right": [
|
||||
"arrow"
|
||||
],
|
||||
"chevrons-up": [
|
||||
"arrow"
|
||||
],
|
||||
"chevrons-up-down": [
|
||||
"arrow"
|
||||
],
|
||||
"chrome": [
|
||||
"browser"
|
||||
],
|
||||
@@ -296,10 +361,21 @@
|
||||
"zero",
|
||||
"record"
|
||||
],
|
||||
"circle-slashed": [
|
||||
"diameter",
|
||||
"zero",
|
||||
"Ø",
|
||||
"null",
|
||||
"nothing"
|
||||
],
|
||||
"clipboard": [
|
||||
"copy",
|
||||
"paste"
|
||||
],
|
||||
"clipboard-check": [
|
||||
"copied",
|
||||
"pasted"
|
||||
],
|
||||
"clipboard-list": [
|
||||
"copy",
|
||||
"paste",
|
||||
@@ -317,6 +393,10 @@
|
||||
"weather",
|
||||
"shower"
|
||||
],
|
||||
"cloud-fog": [
|
||||
"weather",
|
||||
"mist"
|
||||
],
|
||||
"cloud-hail": [
|
||||
"weather",
|
||||
"rainfall"
|
||||
@@ -325,6 +405,10 @@
|
||||
"weather",
|
||||
"bolt"
|
||||
],
|
||||
"cloud-moon": [
|
||||
"weather",
|
||||
"night"
|
||||
],
|
||||
"cloud-off": [
|
||||
"disconnect"
|
||||
],
|
||||
@@ -340,13 +424,28 @@
|
||||
"weather",
|
||||
"blizzard"
|
||||
],
|
||||
"cloud-sun": [
|
||||
"weather",
|
||||
"partly"
|
||||
],
|
||||
"cloudy": [
|
||||
"clouds"
|
||||
],
|
||||
"clover": [
|
||||
"leaf",
|
||||
"luck"
|
||||
],
|
||||
"code": [
|
||||
"source",
|
||||
"programming"
|
||||
"programming",
|
||||
"html",
|
||||
"xml"
|
||||
],
|
||||
"code-2": [
|
||||
"source",
|
||||
"programming",
|
||||
"html",
|
||||
"xml"
|
||||
],
|
||||
"codepen": [
|
||||
"logo"
|
||||
@@ -480,8 +579,13 @@
|
||||
"money",
|
||||
"payment"
|
||||
],
|
||||
"download": [],
|
||||
"download-cloud": [],
|
||||
"download": [
|
||||
"import",
|
||||
"export"
|
||||
],
|
||||
"download-cloud": [
|
||||
"import"
|
||||
],
|
||||
"dribbble": [],
|
||||
"droplet": [
|
||||
"water"
|
||||
@@ -514,6 +618,10 @@
|
||||
"money",
|
||||
"payment"
|
||||
],
|
||||
"expand": [
|
||||
"scale",
|
||||
"fullscreen"
|
||||
],
|
||||
"external-link": [
|
||||
"outbound"
|
||||
],
|
||||
@@ -540,56 +648,79 @@
|
||||
"design",
|
||||
"tool"
|
||||
],
|
||||
"file": [],
|
||||
"file": [
|
||||
"document"
|
||||
],
|
||||
"file-check": [
|
||||
"done"
|
||||
"done",
|
||||
"document"
|
||||
],
|
||||
"file-check-2": [
|
||||
"done"
|
||||
"done",
|
||||
"document"
|
||||
],
|
||||
"file-code": [
|
||||
"script"
|
||||
"script",
|
||||
"document"
|
||||
],
|
||||
"file-digit": [
|
||||
"number"
|
||||
"number",
|
||||
"document"
|
||||
],
|
||||
"file-input": [
|
||||
"document"
|
||||
],
|
||||
"file-minus": [
|
||||
"delete",
|
||||
"remove",
|
||||
"erase"
|
||||
"erase",
|
||||
"document"
|
||||
],
|
||||
"file-minus-2": [
|
||||
"document"
|
||||
],
|
||||
"file-output": [
|
||||
"document"
|
||||
],
|
||||
"file-minus-2": [],
|
||||
"file-plus": [
|
||||
"add",
|
||||
"create",
|
||||
"new"
|
||||
"new",
|
||||
"document"
|
||||
],
|
||||
"file-plus-2": [
|
||||
"add",
|
||||
"create",
|
||||
"new"
|
||||
"new",
|
||||
"document"
|
||||
],
|
||||
"file-search": [
|
||||
"lost"
|
||||
"lost",
|
||||
"document",
|
||||
"find"
|
||||
],
|
||||
"file-text": [
|
||||
"data",
|
||||
"txt",
|
||||
"pdf"
|
||||
"pdf",
|
||||
"document"
|
||||
],
|
||||
"file-x": [
|
||||
"lost",
|
||||
"delete",
|
||||
"remove"
|
||||
"remove",
|
||||
"document"
|
||||
],
|
||||
"file-x-2": [
|
||||
"lost",
|
||||
"delete",
|
||||
"remove"
|
||||
"remove",
|
||||
"document"
|
||||
],
|
||||
"files": [
|
||||
"multiple",
|
||||
"copy"
|
||||
"copy",
|
||||
"documents"
|
||||
],
|
||||
"film": [
|
||||
"movie",
|
||||
@@ -628,6 +759,13 @@
|
||||
"folder-plus": [
|
||||
"directory"
|
||||
],
|
||||
"form-input": [
|
||||
"2fa",
|
||||
"authenticate",
|
||||
"login",
|
||||
"field",
|
||||
"text"
|
||||
],
|
||||
"framer": [
|
||||
"logo",
|
||||
"design",
|
||||
@@ -653,6 +791,10 @@
|
||||
"hammer",
|
||||
"mallet"
|
||||
],
|
||||
"ghost": [
|
||||
"pacman",
|
||||
"spooky"
|
||||
],
|
||||
"gift": [
|
||||
"present",
|
||||
"box",
|
||||
@@ -745,6 +887,10 @@
|
||||
"number",
|
||||
"pound"
|
||||
],
|
||||
"haze": [
|
||||
"mist",
|
||||
"fog"
|
||||
],
|
||||
"headphones": [
|
||||
"music",
|
||||
"audio",
|
||||
@@ -875,6 +1021,12 @@
|
||||
"photo",
|
||||
"item"
|
||||
],
|
||||
"layout-template": [
|
||||
"window",
|
||||
"webpage",
|
||||
"block",
|
||||
"section"
|
||||
],
|
||||
"library": [
|
||||
"book",
|
||||
"music",
|
||||
@@ -887,7 +1039,11 @@
|
||||
],
|
||||
"lightbulb": [
|
||||
"idea",
|
||||
"bright"
|
||||
"bright",
|
||||
"lights"
|
||||
],
|
||||
"lightbulb-off": [
|
||||
"lights"
|
||||
],
|
||||
"link": [
|
||||
"chain",
|
||||
@@ -916,7 +1072,12 @@
|
||||
"number",
|
||||
"order"
|
||||
],
|
||||
"loader": [],
|
||||
"loader": [
|
||||
"load"
|
||||
],
|
||||
"loader-2": [
|
||||
"load"
|
||||
],
|
||||
"locate": [
|
||||
"map",
|
||||
"gps",
|
||||
@@ -1037,6 +1198,11 @@
|
||||
"monitor-off": [
|
||||
"share"
|
||||
],
|
||||
"monitor-speaker": [
|
||||
"devices",
|
||||
"connect",
|
||||
"cast"
|
||||
],
|
||||
"moon": [
|
||||
"dark",
|
||||
"night"
|
||||
@@ -1061,6 +1227,11 @@
|
||||
"cursor",
|
||||
"click"
|
||||
],
|
||||
"mouse-pointer-click": [
|
||||
"arrow",
|
||||
"cursor",
|
||||
"click"
|
||||
],
|
||||
"move": [
|
||||
"arrows"
|
||||
],
|
||||
@@ -1127,6 +1298,11 @@
|
||||
"audio",
|
||||
"stop"
|
||||
],
|
||||
"pause-octagon": [
|
||||
"music",
|
||||
"audio",
|
||||
"stop"
|
||||
],
|
||||
"pen-tool": [
|
||||
"vector",
|
||||
"drawing",
|
||||
@@ -1140,6 +1316,12 @@
|
||||
"percent": [
|
||||
"discount"
|
||||
],
|
||||
"person-standing": [
|
||||
"people",
|
||||
"human",
|
||||
"accessibility",
|
||||
"stick figure"
|
||||
],
|
||||
"phone": [
|
||||
"call"
|
||||
],
|
||||
@@ -1182,6 +1364,12 @@
|
||||
"music",
|
||||
"start"
|
||||
],
|
||||
"plug-zap": [
|
||||
"charge",
|
||||
"charging",
|
||||
"battery",
|
||||
"connect"
|
||||
],
|
||||
"plus": [
|
||||
"add",
|
||||
"new"
|
||||
@@ -1212,7 +1400,11 @@
|
||||
],
|
||||
"power": [
|
||||
"on",
|
||||
"off"
|
||||
"off",
|
||||
"device"
|
||||
],
|
||||
"power-off": [
|
||||
"device"
|
||||
],
|
||||
"printer": [
|
||||
"fax",
|
||||
@@ -1284,6 +1476,14 @@
|
||||
"save": [
|
||||
"floppy disk"
|
||||
],
|
||||
"scale": [
|
||||
"balance",
|
||||
"legal",
|
||||
"license",
|
||||
"right",
|
||||
"rule",
|
||||
"law"
|
||||
],
|
||||
"scissors": [
|
||||
"cut"
|
||||
],
|
||||
@@ -1315,16 +1515,30 @@
|
||||
"move",
|
||||
"split"
|
||||
],
|
||||
"server": [],
|
||||
"server-crash": [],
|
||||
"server-off": [],
|
||||
"server": [
|
||||
"cloud",
|
||||
"storage"
|
||||
],
|
||||
"server-crash": [
|
||||
"cloud",
|
||||
"storage",
|
||||
"problem",
|
||||
"error"
|
||||
],
|
||||
"server-off": [
|
||||
"cloud",
|
||||
"storage"
|
||||
],
|
||||
"settings": [
|
||||
"cog",
|
||||
"edit",
|
||||
"gear",
|
||||
"preferences"
|
||||
],
|
||||
"share": [],
|
||||
"share": [
|
||||
"network",
|
||||
"connections"
|
||||
],
|
||||
"share-2": [
|
||||
"network",
|
||||
"connections"
|
||||
@@ -1387,12 +1601,22 @@
|
||||
"dig",
|
||||
"spade"
|
||||
],
|
||||
"shrink": [
|
||||
"scale",
|
||||
"fullscreen"
|
||||
],
|
||||
"shuffle": [
|
||||
"music"
|
||||
],
|
||||
"sidebar": [
|
||||
"menu"
|
||||
],
|
||||
"sidebar-close": [
|
||||
"menu"
|
||||
],
|
||||
"sidebar-open": [
|
||||
"menu"
|
||||
],
|
||||
"sigma": [
|
||||
"sum",
|
||||
"calculate"
|
||||
@@ -1403,6 +1627,11 @@
|
||||
"skip-forward": [
|
||||
"music"
|
||||
],
|
||||
"skull": [
|
||||
"death",
|
||||
"danger",
|
||||
"bone"
|
||||
],
|
||||
"slack": [
|
||||
"logo"
|
||||
],
|
||||
@@ -1457,7 +1686,16 @@
|
||||
"star": [
|
||||
"bookmark",
|
||||
"favorite",
|
||||
"like"
|
||||
"like",
|
||||
"review",
|
||||
"rating"
|
||||
],
|
||||
"star-half": [
|
||||
"bookmark",
|
||||
"favorite",
|
||||
"like",
|
||||
"review",
|
||||
"rating"
|
||||
],
|
||||
"stop-circle": [
|
||||
"media",
|
||||
@@ -1510,10 +1748,21 @@
|
||||
"logo",
|
||||
"bullseye"
|
||||
],
|
||||
"tent": [
|
||||
"campsite",
|
||||
"wigwam"
|
||||
],
|
||||
"terminal": [
|
||||
"code",
|
||||
"command line",
|
||||
"prompt"
|
||||
"prompt",
|
||||
"shell"
|
||||
],
|
||||
"terminal-square": [
|
||||
"code",
|
||||
"command line",
|
||||
"prompt",
|
||||
"shell"
|
||||
],
|
||||
"thermometer": [
|
||||
"temperature",
|
||||
@@ -1521,6 +1770,23 @@
|
||||
"fahrenheit",
|
||||
"weather"
|
||||
],
|
||||
"thermometer-snowflake": [
|
||||
"temperature",
|
||||
"celsius",
|
||||
"fahrenheit",
|
||||
"weather",
|
||||
"cold",
|
||||
"freeze",
|
||||
"freezing"
|
||||
],
|
||||
"thermometer-sun": [
|
||||
"temperature",
|
||||
"celsius",
|
||||
"fahrenheit",
|
||||
"weather",
|
||||
"warm",
|
||||
"hot"
|
||||
],
|
||||
"thumbs-down": [
|
||||
"dislike",
|
||||
"bad",
|
||||
@@ -1531,6 +1797,11 @@
|
||||
"good",
|
||||
"emotion"
|
||||
],
|
||||
"ticket": [
|
||||
"entry",
|
||||
"pass",
|
||||
"voucher"
|
||||
],
|
||||
"timer": [
|
||||
"time",
|
||||
"timer",
|
||||
@@ -1546,6 +1817,12 @@
|
||||
"off",
|
||||
"switch"
|
||||
],
|
||||
"tornado": [
|
||||
"weather",
|
||||
"wind",
|
||||
"storm",
|
||||
"hurricane"
|
||||
],
|
||||
"trash": [
|
||||
"garbage",
|
||||
"delete",
|
||||
|
||||