Compare commits

...

96 Commits

Author SHA1 Message Date
Yashu Mittal
a98692b37c add alarm-clock-off icon (#201)
* add alarm-clock-off icon

* Update alarm-clock-off.svg

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2021-09-26 21:44:55 +02:00
dependabot[bot]
a843cf6d6b Bump ansi-regex from 5.0.0 to 5.0.1 in /site (#410)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v5.0.0...v5.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-26 17:53:29 +02:00
Eric Fennis
72736a6879 Merge branch 'master' of github.com:lucide-icons/lucide 2021-09-26 17:50:44 +02:00
Eric Fennis
296bb35317 Fix bash if statement in release workflow 2021-09-26 17:50:15 +02:00
Christoph Nölke
7adecdc5df add landmark icon (#406) 2021-09-26 17:25:38 +02:00
Eric Fennis
23259c9e3f revert temp code 2021-09-26 12:48:31 +02:00
Eric Fennis
5770517a71 revert commented code 2021-09-26 12:46:47 +02:00
Eric Fennis
601b7ad1fc Fix some version adding 2021-09-26 12:22:25 +02:00
Eric Fennis
e79d778606 add yd 2021-09-26 11:53:15 +02:00
Eric Fennis
04dad48bc5 add yd 2021-09-26 11:45:10 +02:00
Eric Fennis
dd9c48196d disable some 2021-09-26 11:18:26 +02:00
Eric Fennis
db9cd7af52 disable check 2021-09-26 11:17:07 +02:00
Eric Fennis
893dc9e0e8 try to fix flutter workflow 2021-09-26 11:13:38 +02:00
Eric Fennis
b172f4316e Merge branch 'master' of github.com:lucide-icons/lucide 2021-09-26 11:08:59 +02:00
Eric Fennis
60e42bd350 Merge branch 'master' of github.com:ericfennis/lucide 2021-09-22 08:46:59 +02:00
Eric Fennis
272e33d320 📦 Roll up version numbers 2021-09-22 08:46:50 +02:00
dependabot[bot]
0af9969e53 Bump tmpl from 1.0.4 to 1.0.5 (#405)
Bumps [tmpl](https://github.com/daaku/nodejs-tmpl) from 1.0.4 to 1.0.5.
- [Release notes](https://github.com/daaku/nodejs-tmpl/releases)
- [Commits](https://github.com/daaku/nodejs-tmpl/commits/v1.0.5)

---
updated-dependencies:
- dependency-name: tmpl
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-22 08:42:12 +02:00
dependabot[bot]
afbe6576d6 Bump tmpl from 1.0.4 to 1.0.5 in /site (#404)
Bumps [tmpl](https://github.com/daaku/nodejs-tmpl) from 1.0.4 to 1.0.5.
- [Release notes](https://github.com/daaku/nodejs-tmpl/releases)
- [Commits](https://github.com/daaku/nodejs-tmpl/commits/v1.0.5)

---
updated-dependencies:
- dependency-name: tmpl
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-21 12:33:33 +02:00
dependabot[bot]
a61276c72e Bump semver-regex from 3.1.2 to 3.1.3 (#403)
Bumps [semver-regex](https://github.com/sindresorhus/semver-regex) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/sindresorhus/semver-regex/releases)
- [Commits](https://github.com/sindresorhus/semver-regex/commits)

---
updated-dependencies:
- dependency-name: semver-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-21 09:25:40 +02:00
Eric Fennis
e43c2a7f23 Set package json version 2021-09-20 08:38:56 +02:00
Eric Fennis
06fe7d6a3f Add event listeners to vue component, fix #400 2021-09-20 08:33:32 +02:00
Eric Fennis
81ff3fc1d1 Update figma plugin 2021-09-20 08:32:57 +02:00
Eric Fennis
776ef4f43c revert disable workflow 2021-09-17 17:50:07 +02:00
Eric Fennis
e4edabddb9 add other docker image 2021-09-17 17:26:54 +02:00
Eric Fennis
028afec837 Temporary disable CI for packages 2021-09-17 17:03:02 +02:00
Eric Fennis
049c4cd61e Fix directory names 2021-09-17 16:58:47 +02:00
Eric Fennis
b13a7bf1ab Add custom build again 2021-09-17 16:44:25 +02:00
Eric Fennis
e278f27a61 fix versions 2021-09-17 16:33:23 +02:00
Eric Fennis
f70a0e1945 Add default classnames, fix #317 2021-09-17 16:23:17 +02:00
Eric Fennis
26f85a75d2 fix icon 2021-09-17 15:56:10 +02:00
Eric Fennis
da7c09f66e add paralel jobs 2021-09-17 15:51:18 +02:00
Eric Fennis
f5175bd4b2 Merge branch 'master' of github.com:ericfennis/lucide 2021-09-17 13:26:16 +02:00
Eric Fennis
cb7da732fe Split up merged paths 2021-09-16 10:06:19 +02:00
Snow
2200ab47d3 Feature/icon name class (#395)
* #317 Add icon-names to class list for Vue.

* #317 Tidy up class name.
2021-09-13 21:13:52 +02:00
Snow
c537469638 Update README.md (#396)
Small typ-oh.
2021-09-12 09:12:12 +02:00
Eric Fennis
f09836cc84 update release.yml 2021-09-06 21:29:31 +02:00
Eric Fennis
eaf51b2da4 update release yml 2021-09-06 21:02:13 +02:00
Billiam
66b3574d64 Add quote icon (#389)
* Add quote icon

* Split quote paths
2021-09-06 20:46:17 +02:00
Eric Fennis
435d2bd66b Add more tags (#393) 2021-09-05 16:11:59 +02:00
Eric Fennis
ca330378d0 Merge branch 'master' of github.com:lucide-icons/lucide 2021-09-05 13:21:57 +02:00
Eric Fennis
aa7efeacc4 fix release yml 2021-09-05 13:19:36 +02:00
tidoni
0febdd831f Created selection-flag start and end flag (#380)
* Created selection-flag start and end flag

* Update icons/selection-flag-start.svg

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>

* Update icons/selection-flag-end.svg

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>

* Rename selection-flag-start.svg to flag-triangle-right.svg

* Rename selection-flag-end.svg to flag-triangle-left.svg

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2021-09-05 12:59:44 +02:00
Yashu Mittal
99d5d7a6da Add timer-reset icon (#308)
* add timer off icon

* remove icon

* add timer reset icon

* Update timer-reset.svg

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2021-09-05 12:49:01 +02:00
dependabot[bot]
533b820e32 Bump next from 11.1.0 to 11.1.1 in /site (#391)
Bumps [next](https://github.com/vercel/next.js) from 11.1.0 to 11.1.1.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v11.1.0...v11.1.1)

---
updated-dependencies:
- dependency-name: next
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-05 12:28:00 +02:00
venashial
cd7b9bf03d Support Nuxt auto-importing Vue components (#390)
* Add support for nuxt component auto importing

* Add documentation for using with nuxt components
2021-08-31 20:58:13 +02:00
Eric Fennis
c97b456bce fix indentation 2021-08-26 13:39:46 +02:00
Eric Fennis
9a04665ad2 refactor workflows 2021-08-26 13:22:20 +02:00
Eric Fennis
2d5a5fd90a Fix release workflow 2021-08-25 14:30:33 +02:00
Eric Fennis
7ed8092d8a Merge branch 'master' of github.com:lucide-icons/lucide 2021-08-24 23:36:50 +02:00
Eric Fennis
7128fc608e Fix post release 2021-08-24 23:36:16 +02:00
Yashu Mittal
b470bc691c Add megaphone icon (#214)
* add megaphone icon

* Update megaphone.svg

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2021-08-24 23:28:03 +02:00
Eric Fennis
d67626a6e1 Merge branch 'feature/add-more-workflows' 2021-08-24 23:19:06 +02:00
Eric Fennis
10b146a358 fix indenting 2021-08-24 23:10:48 +02:00
Eric Fennis
641bf8a933 Fix #370 2021-08-24 23:05:18 +02:00
Mark Motliuk
f0f168376a Lucide Flutter packging (#369)
* Flutter plugin init

* Updated readme
2021-08-24 21:34:22 +02:00
Jan
34594af2bd Added the template and changed corresponding documentation (#377)
* Added the template and changed corresponding documentation

Added the illustrator template and created (ILLUSTRATOR_GUIDE.md) oder changed (CONTRIBUTING.md) files.

* fixed typo

* split up template instruction docs for programs

documentation concerning the templates and instrcutions is now separated in the documentation.

* updated illustrator export documentation

updated illustrator guide with the according options for exporting SVGs

* updated image path

image path should be correct now

* matching filenames

files names illustrator guide should match file name in /images

* image in illustrator guide path correction

image should work now

* layout adjustments to illustrator guide

layout should be pretty now

* layout corrections second try
2021-08-19 09:12:56 +02:00
Eric Fennis
e686494545 Add flutter release yml 2021-08-16 21:13:42 +02:00
Eric Fennis
6eb0acac4e add yaml transformer 2021-08-15 21:46:44 +02:00
Eric Fennis
8b0cf96c69 add working directory 2021-08-15 21:29:41 +02:00
Eric Fennis
48376a2621 Add dryrun flutter publish 2021-08-15 21:27:22 +02:00
Eric Fennis
2c580552b4 add flutter action 2021-08-15 21:19:38 +02:00
Eric Fennis
95a625dcd4 remove cache 2021-08-15 21:17:56 +02:00
Eric Fennis
3af8508c46 fix indenting 2021-08-15 21:17:19 +02:00
Eric Fennis
609fd065da test flutter 2021-08-15 21:16:09 +02:00
AB
b4afb9c8da Fix typescript declarations for lucide-react (#388)
* Fix typescript declarations for lucide-react

- removed leftover references to `vue`
- removed redundant property declarations on `LucideProps`

* Update buildTypes.js

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2021-08-15 21:05:51 +02:00
dependabot[bot]
3292edab39 Bump jszip from 3.6.0 to 3.7.0 in /site (#385)
Bumps [jszip](https://github.com/Stuk/jszip) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/Stuk/jszip/releases)
- [Changelog](https://github.com/Stuk/jszip/blob/master/CHANGES.md)
- [Commits](https://github.com/Stuk/jszip/compare/v3.6.0...v3.7.0)

---
updated-dependencies:
- dependency-name: jszip
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-15 20:48:23 +02:00
dependabot[bot]
754300465a Bump next from 10.2.3 to 11.1.0 in /site (#384)
* Bump next from 10.2.3 to 11.1.0 in /site

Bumps [next](https://github.com/vercel/next.js) from 10.2.3 to 11.1.0.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v10.2.3...v11.1.0)

---
updated-dependencies:
- dependency-name: next
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix eslint

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2021-08-15 20:47:59 +02:00
dependabot[bot]
5834504dd9 Bump path-parse from 1.0.6 to 1.0.7 in /packages/lucide-figma (#383)
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-13 22:52:33 +02:00
dependabot[bot]
29a7763ce2 Bump path-parse from 1.0.6 to 1.0.7 (#382)
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-13 22:52:23 +02:00
Lucide Bot
f19e0696ce 📦 Bump lucide package versions to 0.15.30 2021-08-10 08:36:18 +00:00
Lukas Schätzle
872adfa333 Add graduation-cap icon (#367)
* add graduation-cap icon

* move graduation-cap into icons folder

* Add tags for graduation-cap

* Add trailing newline

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2021-08-10 10:31:34 +02:00
Lucide Bot
428460ea46 📦 Bump lucide package versions to 0.15.29 2021-08-08 19:06:07 +00:00
Christoph Nölke
96da221758 add rocking chair icon (#360)
Co-authored-by: b0b90 <babersheikh@outlook.com>

Co-authored-by: b0b90 <babersheikh@outlook.com>
2021-08-08 21:00:42 +02:00
delnyn
0cf7c22379 Refactor the archive icon (#365)
* Refactor the archive icon

* Format the SVG

Co-authored-by: delnyn <delnyn@e.email>
2021-08-08 21:00:23 +02:00
marchellodev
f78ef546a8 Updated readme 2021-08-05 22:39:34 +03:00
marchellodev
7558bef262 Flutter plugin init 2021-08-05 22:17:05 +03:00
Lucide Bot
51b12ae55c 📦 Bump lucide package versions to 0.15.28 2021-07-26 20:13:11 +00:00
David Kerkeslager
c60323c28c Added icons for mountain and mountain with snow (#284)
* Added icons for mountain and mountain with snow

* Update mountain.svg

* Update mountain-snow.svg

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2021-07-26 22:08:40 +02:00
Lucide Bot
d71b18d0e7 📦 Bump lucide package versions to 0.15.27 2021-07-26 18:26:58 +00:00
Yashu Mittal
10e3aa4377 fix: smartphone outer line position (#315)
* fix: smartphone outer line position

* change path to rect tag
2021-07-26 20:22:20 +02:00
Avior
d1262f4c7f Allow to use with React 17 (#356)
The library works perfectly with React 17 so it will allow users to not use `npm --legacy-peer-deps`
2021-07-26 20:17:44 +02:00
Dan
03aefa2cd5 Add info about laravel blade icons repackage (#357) 2021-07-26 20:16:15 +02:00
Billiam
41f8ce9660 Build multiple font weights in action (#355)
* Build multiple font thicknesses

* Fontcustom empties directory during compilation
2021-07-26 20:12:13 +02:00
Baltazar Gomez
2b41a44538 add missing tag "text" to bold icon (#362) 2021-07-24 03:17:49 -04:00
Lucide Bot
8ffb43b8e0 📦 Bump lucide package versions to 0.15.26 2021-07-07 11:20:52 +00:00
Christoph Nölke
b39b835390 add currency icon (#353) 2021-07-07 13:15:56 +02:00
Eric Fennis
24a6ef9fd9 Add figma badge 2021-07-07 13:13:56 +02:00
Eric Fennis
17967a9598 Merge branch 'master' of github.com:lucide-icons/lucide 2021-06-28 10:30:09 +02:00
Eric Fennis
9dc93a602d update site 2021-06-28 10:29:44 +02:00
Lucide Bot
b672e884d9 📦 Bump lucide package versions to 0.15.25 2021-06-24 07:46:04 +00:00
Yashu Mittal
46bbb6485b add import icon (#239)
* add save-2 icon

* rename to import
2021-06-24 09:41:58 +02:00
Lucide Bot
b530c40486 📦 Bump lucide package versions to 0.15.24 2021-06-24 06:45:14 +00:00
Yashu Mittal
5d1fdd703c add smartphone-charging icon (#316)
* add smartphone-charging icon

* change path to rect tag

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2021-06-24 08:39:33 +02:00
Lucide Bot
706486b3b7 📦 Bump lucide package versions to 0.15.23 2021-06-21 17:52:28 +00:00
Yashu Mittal
3a7b878847 add function-square icon (#302)
* add square function icon

* change path to rect tag

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>

* Fix icon

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>

* Rename square-function.svg to function-square.svg

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2021-06-21 19:47:45 +02:00
Lucide Bot
2eb158f32b 📦 Bump lucide package versions to 0.15.22 2021-06-19 11:19:20 +00:00
78 changed files with 5913 additions and 1611 deletions

View File

@@ -1,61 +0,0 @@
name: Build Lucide
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
Build:
runs-on: ubuntu-latest
steps:
- name: Clone 'Lucide'
uses: actions/checkout@v2
- name: Update repos
run: sudo apt-get update
- name: Install FontForge
run: sudo apt-get install zlib1g-dev fontforge
- name: Clone sfnt2woff-zopfli repo
run: git clone https://github.com/bramstein/sfnt2woff-zopfli.git sfnt2woff-zopfli
- name: Install and move sfnt2woff-zopfli
run: |
cd sfnt2woff-zopfli
make
sudo mv sfnt2woff-zopfli /usr/local/bin/sfnt2woff
- name: Clone woff2
run: git clone --recursive https://github.com/google/woff2.git
- name: Install woff2
run: |
cd woff2
sudo make clean all
sudo mv woff2_compress /usr/local/bin/ && sudo mv woff2_decompress /usr/local/bin/
- name: Install Font Custom dependency
run: sudo gem install fontcustom
- name: Install "outline-stroke"
run: sudo yarn add svg-outline-stroke -W
- name: "Outline SVG"
run: mkdir converted_icons && node scripts/outline_svg.js
- name: Build 'Lucide'
run: echo "Building Lucide font" && fontcustom compile ./converted_icons -h -n Lucide -o build -F
- name: Zip 'Lucide'
run: zip -r Lucide.zip build
- name: 'Upload to Artifacts'
uses: actions/upload-artifact@v1.0.0
with:
name: Lucide
path: build

View File

@@ -13,11 +13,10 @@ on:
jobs:
pre-build:
if: github.repository == 'lucide-icons/lucide'
if: github.repository == 'lucide-icons/lucide' && contains('["locness3","ericfennis", "johnletey"]', github.actor)
runs-on: ubuntu-latest
outputs:
VERSION: ${{ steps.get_version.outputs.VERSION }}
YARN_CACHE_DIR: ${{ steps.yarn_cache.outputs.YARN_CACHE_DIR }}
steps:
- name: Get the version
@@ -28,25 +27,19 @@ jobs:
env:
VERSION_REF: ${{ github.event.inputs.version || github.ref }}
- name: Get yarn cache directory path
id: yarn_cache
run: echo "::set-output name=YARN_CACHE_DIR::$(yarn cache dir)"
lucide:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
needs: pre-build
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
- uses: actions/setup-node@v2.4.0
with:
path: ${{ needs.pre-build.outputs.YARN_CACHE_DIR }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
node-version: '14'
cache: 'yarn'
- name: Install dependencies
run: yarn --pure-lockfile
run: yarn
- name: Set Auth Token
run: npm config set //registry.npmjs.org/:_authToken ${{ secrets.NPM_TOKEN }}
@@ -75,15 +68,13 @@ jobs:
needs: pre-build
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
- uses: actions/setup-node@v2.4.0
with:
path: ${{ needs.pre-build.outputs.YARN_CACHE_DIR }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
node-version: '14'
cache: 'yarn'
- name: Install dependencies
run: yarn --pure-lockfile
run: yarn
- name: Set Auth Token
run: npm config set //registry.npmjs.org/:_authToken ${{ secrets.NPM_TOKEN }}
@@ -112,19 +103,13 @@ jobs:
needs: pre-build
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/setup-node@v2.4.0
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-
node-version: '14'
cache: 'yarn'
- name: Install dependencies
run: yarn --pure-lockfile
run: yarn
- name: Set Auth Token
run: npm config set //registry.npmjs.org/:_authToken ${{ secrets.NPM_TOKEN }}
@@ -153,19 +138,13 @@ jobs:
needs: pre-build
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/setup-node@v2.4.0
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-
node-version: '14'
cache: 'yarn'
- name: Install dependencies
run: yarn --pure-lockfile
run: yarn
- name: Set Auth Token
run: npm config set //registry.npmjs.org/:_authToken ${{ secrets.NPM_TOKEN }}
@@ -194,12 +173,10 @@ jobs:
needs: pre-build
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
- uses: actions/setup-node@v2.4.0
with:
path: ${{ needs.pre-build.outputs.YARN_CACHE_DIR }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
node-version: '14'
cache: 'yarn'
- name: Install dependencies
run: yarn --pure-lockfile
@@ -231,15 +208,13 @@ jobs:
needs: pre-build
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
- uses: actions/setup-node@v2.4.0
with:
path: ${{ needs.pre-build.outputs.YARN_CACHE_DIR }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
node-version: '14'
cache: 'yarn'
- name: Install dependencies
run: yarn --pure-lockfile
run: yarn
- name: Set Auth Token
run: npm config set //registry.npmjs.org/:_authToken ${{ secrets.NPM_TOKEN }}
@@ -262,28 +237,171 @@ jobs:
name: lucide-preact-package-json
path: packages/lucide-preact/package.json
upload-package-jsons:
lucide-font:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
needs: [pre-build, lucide, lucide-react, lucide-vue, lucide-vue-next, lucide-angular, lucide-preact]
needs: pre-build
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2.4.0
with:
node-version: '14'
cache: 'yarn'
- name: Update repos
run: sudo apt-get update
- name: Install FontForge
run: sudo apt-get install zlib1g-dev fontforge
- name: Clone sfnt2woff-zopfli repo
run: git clone https://github.com/bramstein/sfnt2woff-zopfli.git sfnt2woff-zopfli
- name: Install and move sfnt2woff-zopfli
run: |
cd sfnt2woff-zopfli
make
sudo mv sfnt2woff-zopfli /usr/local/bin/sfnt2woff
- name: Clone woff2
run: git clone --recursive https://github.com/google/woff2.git
- name: Install woff2
run: |
cd woff2
sudo make clean all
sudo mv woff2_compress /usr/local/bin/ && sudo mv woff2_decompress /usr/local/bin/
- name: Install Font Custom dependency
run: sudo gem install fontcustom
- name: Install
run: yarn
- name: "Outline SVG"
run: yarn build:outline-icons
- name: Build Icon Font
run: |
mkdir build
list=(-200 -300 "" -500 -600)
command=''
for name in "${list[@]}"
do
subcommand="(fontcustom compile "./converted_icons${name}" -h -n "lucide${name}" -o ./tmp -F && mv ./tmp/* build)"
if [ -z "$command" ]
then
command="$subcommand";
else
command="$command & $subcommand";
fi
done
eval $command
- name: 'Upload to Artifacts'
uses: actions/upload-artifact@v1
with:
name: lucide-font
path: build
lucide-flutter:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
needs: [pre-build, lucide-font]
container:
image: cirrusci/flutter:latest
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
- uses: actions/cache@v2
with:
path: '~/.pub-cache'
key: ${{ runner.os }}-pub-${{ hashFiles('~/.pub-cache') }}
restore-keys: |
${{ runner.os }}-pub-
- name: Setup credentials
run: |
mkdir -p ~/.pub-cache
cat <<EOF > ~/.pub-cache/credentials.json
{
"accessToken": "${{ secrets.GOOGLE_OAUTH_ACCESS_TOKEN }}",
"refreshToken": "${{ secrets.GOOGLE_OAUTH_REFRESH_TOKEN }}",
"idToken": "${{ secrets.GOOGLE_OAUTH_ID_TOKEN }}",
"tokenEndpoint":"https://accounts.google.com/o/oauth2/token",
"scopes": [ "openid", "https://www.googleapis.com/auth/userinfo.email" ],
"expiration": 1629835569218
}
EOF
- name: Get packages
run: flutter pub get
working-directory: packages/lucide-flutter
- name: List lucide-font folder
run: ls lucide-font
- name: Move the ttf file
run: mv lucide-font/lucide.ttf packages/lucide-flutter/assets/Lucide.ttf
- name: Generate exports file
run: dart tool/generate_fonts.dart lucide-font/lucide-preview.html
working-directory: packages/lucide-flutter
- name: Update yaml
run: sed -E 's/(version:)[^\n]*/\1 ${{ needs.pre-build.outputs.VERSION }}/;' pubspec.yaml > pubspec && mv pubspec pubspec.yaml
working-directory: packages/lucide-flutter
- name: Flutter publish
run: flutter pub publish -f
working-directory: packages/lucide-flutter
- name: Upload pubspec.yaml
uses: actions/upload-artifact@v2
with:
name: lucide-flutter-pubspec-yaml
path: packages/lucide-flutter/pubspec.yaml
post-release:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
needs: [pre-build, lucide, lucide-react, lucide-vue, lucide-vue-next, lucide-angular, lucide-preact, lucide-flutter, lucide-font]
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
- name: Commit package.jsons
run: |
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-package-json/package.json packages/lucide-angular/package.json
- name: Commit package files
run: |
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-package-json/package.json packages/lucide-angular/package.json
mv lucide-flutter-pubspec-yaml/pubspec.yaml packages/lucide-flutter/pubspec.yaml
- name: Commit package.jsons
run: |
git add packages/*/package.json
git -c user.name="Lucide Bot" -c user.email="lucide-bot@users.noreply.github.com" \
commit -m ":package: Bump lucide package versions to ${{ needs.pre-build.outputs.VERSION }}" --no-verify --quiet
git remote set-url --push origin https://lucide-bot:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY.git
git push origin HEAD:master
- name: Commit package.jsons
run: |
git add packages/*/package.json packages/lucide-flutter/pubspec.yaml
git -c user.name="Lucide Bot" -c user.email="lucide-bot@users.noreply.github.com" \
commit -m ":package: Bump lucide package versions to ${{ needs.pre-build.outputs.VERSION }}" --no-verify --quiet
git remote set-url --push origin https://lucide-bot:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY.git
git push origin HEAD:master
- name: Zip font and icons
run: |
zip -r lucide-font-${{ needs.pre-build.outputs.VERSION }}.zip lucide-font
zip -r lucide-icons-${{ needs.pre-build.outputs.VERSION }}.zip icons
- name: Release zip and fonts
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.CREATE_RELEASE_TOKEN }}
with:
tag_name: v${{ steps.new-version.outputs.VERSION }}
files: |
lucide-font-${{ needs.pre-build.outputs.VERSION }}.zip
lucide-icons-${{ needs.pre-build.outputs.VERSION }}.zip

View File

@@ -1,3 +1,4 @@
# Contribution Guidelines
:+1::tada: First off, thanks for taking the time to contribute! :tada::+1:
@@ -22,8 +23,23 @@ Guidelines for pull requests:
#### Guidelines
Please make sure you follow the icon guidelines, that should be followed to keep quality and consistency when making icons for Lucide
Read it here: [ICON_GUIDELINES](docs/ICON_DESIGN_GUIDE.md)
Please make sure you follow the icon guidelines, that should be followed to keep quality and consistency when making icons for Lucide.
Read it here: [ICON_GUIDELINES](docs/ICON_DESIGN_GUIDE.md).
### Templates
Here you can find templates and instructions on how to implement the guidelines with different programs.
#### Adobe Illustrator
`Template`: You can find a template for Adobe Illustrator under `/docs/templates/illustrator-template.ai`.
`Instructions`: You can find the [Illustrator Guide](/docs/ILLUSTRATOR_GUIDE.md) and how to work with the template in `/docs/ILLUSTRATOR_GUIDE.md`.
#### Inkscape
`Template`: None
`Instructions`: You can find the [Inkscape Guide](/docs/INKSCAPE_GUIDE.md) and how to set up Inkscape under `/docs/INKSCAPE_GUIDE.md`.
#### Submitting Mulitple Icons

View File

@@ -4,6 +4,7 @@
![NPM](https://img.shields.io/npm/l/lucide)
[![npm](https://img.shields.io/npm/v/lucide)](https://www.npmjs.com/package/lucide)
[![installs](https://img.shields.io/endpoint?logo=figma&label=installs&url=https://yuanqing.github.io/figma-plugins-stats/plugin/939567362549682242/installs.json)](https://www.figma.com/community/plugin/939567362549682242/Lucide-Icons)
[![Discord](https://img.shields.io/discord/723074157486800936?label=chat&logo=discord&logoColor=%23ffffff&colorB=%237289DA)](https://discord.gg/EH6nSts)
## What is Lucide?
@@ -16,7 +17,7 @@ Lucide is trying to expand the icon set as much as possible while staying faithf
### Why choose Lucide over Feather Icons
- Lucide already expended the icon set by 130+ in less then a year, so more icons to work with.
- Lucide already expanded the icon set by 130+ in less then a year, so more icons to work with.
- Well maintained code base.
- Active community.
@@ -33,6 +34,8 @@ Lucide is trying to expand the icon set as much as possible while staying faithf
* [Angular](#angular)
* [Preact](#preact)
* [Figma](#figma)
* [Laravel](#laravel)
* [Flutter](#flutter)
* [Contributing](#contributing)
* [Community](#community)
* [License](#license)
@@ -134,6 +137,26 @@ Visit [Figma community page](https://www.figma.com/community/plugin/939567362549
<img width="420" src="https://www.figma.com/community/plugin/939567362549682242/thumbnail" alt="Figma Lucide Cover">
### Laravel
Implementation of Lucide icon's using `blade-icons` for Laravel based projects.
```sh
composer require mallardduck/blade-lucide-icons
```
For more details, see the [documentation](https://github.com/mallardduck/blade-lucide-icons/blob/main/README.md).
### Flutter
Implementation of Lucide icon library for Flutter applications.
```sh
flutter pub add lucide_icons
```
For more details, see the [pub.dev](https://pub.dev/packages/lucide_icons).
## Contributing
For more info on how to contribute please see the [contribution guidelines](https://github.com/lucide-icons/lucide/blob/master/CONTRIBUTING.md).

28
docs/ILLUSTRATOR_GUIDE.md Normal file
View File

@@ -0,0 +1,28 @@
# Illustrator Template Guide
This Guide explains how to properly use the Adobe Illustrator Template for Lucide.
>Attention: Even though it is unlikely the template can be outdated or not 100% correct. Please check the Icon Design Guide before you start working with the template to ensure integrity with the Lucide icon pack.
## General Workflow
The Illustrator template is created following guidelines from the [Icon Design Guide](ICON_DESIGN_GUIDE.md).
**Workflow:**
1. Open the Document which can be found under __*/docs/templates/illustrator_template.ai*__ .
2. You can now remove the content from the example logo layer ("Draw") and start creating.
3. Verify that you follow the [Icon Design Guidelines](ICON_DESIGN_GUIDE.md).
4. Before you export the file as an SVG make sure to check that you followed the guidelines and remove all unecessary layers (especially "Padding" and "Grid").
5. Export the file with the export menu under: `Export > Export As..` than safe the file as SVG. Select the following options in the SVG Options dialog:
![SVG export options in Illustrator](images/illustrator-svg-options.png?raw=true "Setting Page Size")
After that, double check that the [code conventions and SVG global attributes](https://github.com/lucide-icons/lucide/blob/master/docs/ICON_DESIGN_GUIDE.md#code-conventions) are correct.
7. Minify paths with [SVGOMG](https://jakearchibald.github.io/svgomg/).

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

1935
docs/templates/illustrator_template.ai vendored Normal file

File diff suppressed because one or more lines are too long

17
icons/alarm-clock-off.svg Normal file
View File

@@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M19.94 14A8 8 0 0 0 10 5.25m8.13 12.89A8 8 0 1 1 6.87 6.86" />
<path d="m22 6-3-3" />
<path d="m6 19-2 2" />
<path d="m2 2 20 20" />
<path d="M4 4 2 6" />
</svg>

After

Width:  |  Height:  |  Size: 382 B

View File

@@ -1,15 +1,13 @@
<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"
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"
>
<polyline points="21 8 21 21 3 21 3 8" />
<rect x="1" y="3" width="22" height="5" />
<line x1="10" y1="12" x2="14" y2="12" />
</svg>
<path d="M20 9v9a2 2 0 01-2 2H6a2 2 0 01-2-2V9M20 4H4a2 2 0 00-2 2v1a2 2 0 002 2h16a2 2 0 002-2V6a2 2 0 00-2-2zM10 13h4"/>
</svg>

Before

Width:  |  Height:  |  Size: 340 B

After

Width:  |  Height:  |  Size: 323 B

View File

@@ -9,7 +9,8 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M7 7H3.78A1.73 1.73 0 002 8.67v6.66A1.73 1.73 0 003.78 17H6m8-10h2.22A1.73 1.73 0 0118 8.67v6.66A1.73 1.73 0 0116.22 17H13" />
<path d="M14 7h2a2 2 0 012 2v6a2 2 0 01-2 2h-3" />
<path d="M7 7H4a2 2 0 00-2 2v6a2 2 0 002 2h2" />
<polyline points="11 7 8 12 12 12 9 17" />
<line x1="22" x2="22" y1="11" y2="13" />
</svg>

Before

Width:  |  Height:  |  Size: 434 B

After

Width:  |  Height:  |  Size: 400 B

17
icons/currency.svg Normal file
View File

@@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="8" />
<line x1="3" y1="3" x2="6" y2="6" />
<line x1="21" y1="3" x2="18" y2="6" />
<line x1="3" y1="21" x2="6" y2="18" />
<line x1="21" y1="21" x2="18" y2="18" />
</svg>

After

Width:  |  Height:  |  Size: 407 B

View File

@@ -0,0 +1,13 @@
<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 22 17 2 7 7 17 12" />
</svg>

After

Width:  |  Height:  |  Size: 245 B

View File

@@ -0,0 +1,13 @@
<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="M7 22 7 2 17 7 7 12" />
</svg>

After

Width:  |  Height:  |  Size: 243 B

14
icons/function-square.svg Normal file
View 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"
>
<rect x="3" y="3" width="18" height="18" rx="2" ry="2" />
<path d="M9 17c1.93 0 2.85-1 2.85-2.8V9.99c0-1.93 1.03-3.26 3.15-2.93M9 11.24h5.66" />
</svg>

After

Width:  |  Height:  |  Size: 357 B

13
icons/graduation-cap.svg Normal file
View File

@@ -0,0 +1,13 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M22 10v6M2 10l10-5 10 5-10 5z" />
<path d="M6 12v5c3 3 9 3 12 0v-5" />
</svg>

After

Width:  |  Height:  |  Size: 270 B

15
icons/import.svg Normal file
View File

@@ -0,0 +1,15 @@
<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="M12 3v12" />
<path d="M8 11l4 4 4-4" />
<path d="M8 5H4a2 2 0 00-2 2v10a2 2 0 002 2h16a2 2 0 002-2V7a2 2 0 00-2-2h-4" />
</svg>

After

Width:  |  Height:  |  Size: 344 B

18
icons/landmark.svg Normal file
View 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"
>
<line x1="3" y1="22" x2="21" y2="22" />
<line x1="6" y1="18" x2="6" y2="11" />
<line x1="10" y1="18" x2="10" y2="11" />
<line x1="14" y1="18" x2="14" y2="11" />
<line x1="18" y1="18" x2="18" y2="11" />
<polygon points="12 2 20 7 4 7" />
</svg>

After

Width:  |  Height:  |  Size: 457 B

14
icons/megaphone.svg Normal file
View 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="M3 11l18-5v12L3 14v-3z" />
<path d="M11.6 16.8a3 3 0 11-5.8-1.6" />
</svg>

After

Width:  |  Height:  |  Size: 289 B

14
icons/mountain-snow.svg Normal file
View 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="M8 3L12 11L17 6L22 21H2L8 3Z" />
<path d="M4.14 15.08c2.62-1.57 5.24-1.43 7.86.42 2.74 1.94 5.49 2 8.23.19" />
</svg>

After

Width:  |  Height:  |  Size: 332 B

13
icons/mountain.svg Normal file
View File

@@ -0,0 +1,13 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M8 3L12 11L17 6L22 21H2L8 3Z" />
</svg>

After

Width:  |  Height:  |  Size: 252 B

14
icons/quote.svg Normal file
View 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="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z" />
<path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z" />
</svg>

After

Width:  |  Height:  |  Size: 506 B

16
icons/rocking-chair.svg Normal file
View File

@@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="3.5 2 6.5 12.5 18 12.5" />
<line x1="9.5" y1="12.5" x2="5.5" y2="20" />
<line x1="15" y1="12.5" x2="18.5" y2="20" />
<path d="M2.75 18a13 13 0 0018.5 0" />
</svg>

After

Width:  |  Height:  |  Size: 390 B

View 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"
>
<rect x="5" y="2" width="14" height="20" rx="2" ry="2" />
<path d="M12.667 8L10 12h4l-2.667 4" />
</svg>

After

Width:  |  Height:  |  Size: 310 B

View File

@@ -10,5 +10,5 @@
stroke-linejoin="round"
>
<rect x="5" y="2" width="14" height="20" rx="2" ry="2" />
<line x1="12" y1="18" x2="12.01" y2="18" />
<path d="M12 18h.01" />
</svg>

Before

Width:  |  Height:  |  Size: 314 B

After

Width:  |  Height:  |  Size: 294 B

16
icons/timer-reset.svg Normal file
View File

@@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M10 2h4" />
<path d="M12 14v-4"/>
<path d="M4 13a8 8 0 018-7 8 8 0 11-5.3 14L4 17.6" />
<path d="M9 17H4v5" />
</svg>

After

Width:  |  Height:  |  Size: 336 B

View File

@@ -9,5 +9,5 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M23 3a10.9 10.9 0 01-3.14 1.53 4.48 4.48 0 00-7.86 3v1A10.66 10.66 0 013 4s-4 9 5 13a11.64 11.64 0 01-7 2c9 5 20 0 20-11.5a4.5 4.5 0 00-.08-.83A7.72 7.72 0 0023 3z" />
<path d="M23 3a10.9 10.9 0 01-3.14 1.53 4.48 4.48 0 00-7.86 3v1A10.66 10.66 0 013 4s-4 9 5 13a11.64 11.64 0 01-7 2c9 5 20 0 20-11.5 0-.28-.03-.56-.08-.83A7.72 7.72 0 0023 3z" />
</svg>

Before

Width:  |  Height:  |  Size: 387 B

After

Width:  |  Height:  |  Size: 388 B

View File

@@ -5,13 +5,20 @@
"packages/*"
],
"nohoist": [
"**/jest", "**/jest/**",
"**/jasmine", "**/jasmine/**",
"**/react", "**/react/**",
"**/testing-library__jest-dom", "**/testing-library__jest-dom/**",
"**/testing-library__react-hooks", "**/testing-library__react-hooks/**",
"**/react-dom", "**/react-dom/**",
"**/react-test-renderer", "**/react-test-renderer/**"
"**/jest",
"**/jest/**",
"**/jasmine",
"**/jasmine/**",
"**/react",
"**/react/**",
"**/testing-library__jest-dom",
"**/testing-library__jest-dom/**",
"**/testing-library__react-hooks",
"**/testing-library__react-hooks/**",
"**/react-dom",
"**/react-dom/**",
"**/react-test-renderer",
"**/react-test-renderer/**"
]
},
"scripts": {
@@ -24,6 +31,7 @@
"lucide-vue": "yarn workspace lucide-vue",
"lucide-vue-next": "yarn workspace lucide-vue-next",
"build:icons": "babel-node ./scripts/buildIcons.js --presets @babel/env",
"build:outline-icons": "babel-node ./scripts/outlineSvg.js --presets @babel/env",
"optimize": "babel-node ./scripts/optimizeSvgs.js --presets @babel/env",
"addtags": "babel-node ./scripts/addMissingKeysToTags.js --presets @babel/env",
"generate:changelog": "babel-node ./scripts/generateChangelog.js --presets @babel/env"
@@ -68,5 +76,8 @@
},
"lint-staged": {
"icons/*.svg": "npx babel-node ./scripts/optimizeStagedSvgs.js --presets @babel/env"
},
"dependencies": {
"svg-outline-stroke": "^1.3.1"
}
}

View File

@@ -1,7 +1,7 @@
{
"name": "lucide-angular",
"description": "Lucide Angular package, Lucide is a community-run fork of Feather Icons, open for anyone to contribute icons.",
"version": "0.15.21",
"version": "0.16.0",
"author": "SMAH1",
"license": "ISC",
"homepage": "https://lucide.dev",

View File

@@ -3,5 +3,6 @@
"id": "939567362549682242",
"api": "1.0.0",
"ui": "build/ui.html",
"main": "build/main.js"
"main": "build/main.js",
"editorType": ["figma"]
}

View File

@@ -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.11",
"lucide-react": "0.16.0",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"style-loader": "^0.23.1",

View File

@@ -2495,9 +2495,9 @@ path-key@^2.0.1:
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
path-parse@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
version "1.0.7"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
path-type@^4.0.0:
version "4.0.0"

76
packages/lucide-flutter/.gitignore vendored Normal file
View File

@@ -0,0 +1,76 @@
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
# IntelliJ related
*.iml
*.ipr
*.iws
.idea/
# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/
# Flutter/Dart/Pub related
**/doc/api/
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.packages
.pub-cache/
.pub/
build/
assets
# Android related
**/android/**/gradle-wrapper.jar
**/android/.gradle
**/android/captures/
**/android/gradlew
**/android/gradlew.bat
**/android/local.properties
**/android/**/GeneratedPluginRegistrant.java
# iOS/XCode related
**/ios/**/*.mode1v3
**/ios/**/*.mode2v3
**/ios/**/*.moved-aside
**/ios/**/*.pbxuser
**/ios/**/*.perspectivev3
**/ios/**/*sync/
**/ios/**/.sconsign.dblite
**/ios/**/.tags*
**/ios/**/.vagrant/
**/ios/**/DerivedData/
**/ios/**/Icon?
**/ios/**/Pods/
**/ios/**/.symlinks/
**/ios/**/profile
**/ios/**/xcuserdata
**/ios/.generated/
**/ios/Flutter/App.framework
**/ios/Flutter/Flutter.framework
**/ios/Flutter/Flutter.podspec
**/ios/Flutter/Generated.xcconfig
**/ios/Flutter/ephemeral
**/ios/Flutter/app.flx
**/ios/Flutter/app.zip
**/ios/Flutter/flutter_assets/
**/ios/Flutter/flutter_export_environment.sh
**/ios/ServiceDefinitions.json
**/ios/Runner/GeneratedPluginRegistrant.*
# Exceptions to above rules.
!**/ios/**/default.mode1v3
!**/ios/**/default.mode2v3
!**/ios/**/default.pbxuser
!**/ios/**/default.perspectivev3

View File

@@ -0,0 +1,3 @@
## 0.15.30
* Initial release

View 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.

View File

@@ -0,0 +1,8 @@
# lucide_icons
Lucide Icons ([lucide.dev](https://lucide.dev)) for Flutter. Visit the website for the full list of icons
## Example
```dart
Icon(LucideIcons.activity);
```

View File

@@ -0,0 +1,18 @@
include: package:lint/analysis_options.yaml
linter:
rules:
omit_local_variable_types: true
avoid_classes_with_only_static_members: false
prefer_single_quotes: true
file_names: false
avoid_setters_without_getters: false
sort_pub_dependencies: false
prefer_relative_imports: true
# only for debug
avoid_print: false

Binary file not shown.

View File

@@ -0,0 +1,9 @@
```dart
Icon(LucideIcons.activity);
Icon(LucideIcons.airplay);
// ...
// for full list see
// https://lucide.dev
```

View File

@@ -0,0 +1,499 @@
library lucide_icons;
import "package:flutter/widgets.dart";
import "src/icon_data.dart";
// THIS FILE IS AUTOMATICALLY GENERATED!
class LucideIcons {
static const IconData activity = const LucideIconData(0xf100);
static const IconData airplay = const LucideIconData(0xf101);
static const IconData alarmCheck = const LucideIconData(0xf102);
static const IconData alarmClock = const LucideIconData(0xf103);
static const IconData alarmMinus = const LucideIconData(0xf104);
static const IconData alarmPlus = const LucideIconData(0xf105);
static const IconData album = const LucideIconData(0xf106);
static const IconData alertCircle = const LucideIconData(0xf107);
static const IconData alertOctagon = const LucideIconData(0xf108);
static const IconData alertTriangle = const LucideIconData(0xf109);
static const IconData alignCenter = const LucideIconData(0xf10a);
static const IconData alignJustify = const LucideIconData(0xf10b);
static const IconData alignLeft = const LucideIconData(0xf10c);
static const IconData alignRight = const LucideIconData(0xf10d);
static const IconData anchor = const LucideIconData(0xf10e);
static const IconData aperture = const LucideIconData(0xf10f);
static const IconData archive = const LucideIconData(0xf110);
static const IconData arrowBigDown = const LucideIconData(0xf111);
static const IconData arrowBigLeft = const LucideIconData(0xf112);
static const IconData arrowBigRight = const LucideIconData(0xf113);
static const IconData arrowBigUp = const LucideIconData(0xf114);
static const IconData arrowDown = const LucideIconData(0xf115);
static const IconData arrowDownCircle = const LucideIconData(0xf116);
static const IconData arrowDownLeft = const LucideIconData(0xf117);
static const IconData arrowDownRight = const LucideIconData(0xf118);
static const IconData arrowLeft = const LucideIconData(0xf119);
static const IconData arrowLeftCircle = const LucideIconData(0xf11a);
static const IconData arrowRight = const LucideIconData(0xf11b);
static const IconData arrowRightCircle = const LucideIconData(0xf11c);
static const IconData arrowUp = const LucideIconData(0xf11d);
static const IconData arrowUpCircle = const LucideIconData(0xf11e);
static const IconData arrowUpLeft = const LucideIconData(0xf11f);
static const IconData arrowUpRight = const LucideIconData(0xf120);
static const IconData asterisk = const LucideIconData(0xf121);
static const IconData atSign = const LucideIconData(0xf122);
static const IconData award = const LucideIconData(0xf123);
static const IconData axe = const LucideIconData(0xf124);
static const IconData banknote = const LucideIconData(0xf125);
static const IconData barChart = const LucideIconData(0xf126);
static const IconData barChart2 = const LucideIconData(0xf127);
static const IconData battery = const LucideIconData(0xf128);
static const IconData batteryCharging = const LucideIconData(0xf129);
static const IconData batteryFull = const LucideIconData(0xf12a);
static const IconData batteryLow = const LucideIconData(0xf12b);
static const IconData batteryMedium = const LucideIconData(0xf12c);
static const IconData beaker = const LucideIconData(0xf12d);
static const IconData bell = const LucideIconData(0xf12e);
static const IconData bellMinus = const LucideIconData(0xf12f);
static const IconData bellOff = const LucideIconData(0xf130);
static const IconData bellPlus = const LucideIconData(0xf131);
static const IconData bellRing = const LucideIconData(0xf132);
static const IconData bike = const LucideIconData(0xf133);
static const IconData binary = const LucideIconData(0xf134);
static const IconData bitcoin = const LucideIconData(0xf135);
static const IconData bluetooth = const LucideIconData(0xf136);
static const IconData bluetoothConnected = const LucideIconData(0xf137);
static const IconData bluetoothOff = const LucideIconData(0xf138);
static const IconData bluetoothSearching = const LucideIconData(0xf139);
static const IconData bold = const LucideIconData(0xf13a);
static const IconData book = const LucideIconData(0xf13b);
static const IconData bookOpen = const LucideIconData(0xf13c);
static const IconData bookmark = const LucideIconData(0xf13d);
static const IconData bot = const LucideIconData(0xf13e);
static const IconData box = const LucideIconData(0xf13f);
static const IconData boxSelect = const LucideIconData(0xf140);
static const IconData briefcase = const LucideIconData(0xf141);
static const IconData brush = const LucideIconData(0xf142);
static const IconData bug = const LucideIconData(0xf143);
static const IconData building = const LucideIconData(0xf144);
static const IconData bus = const LucideIconData(0xf145);
static const IconData calculator = const LucideIconData(0xf146);
static const IconData calendar = const LucideIconData(0xf147);
static const IconData camera = const LucideIconData(0xf148);
static const IconData cameraOff = const LucideIconData(0xf149);
static const IconData car = const LucideIconData(0xf14a);
static const IconData cast = const LucideIconData(0xf14b);
static const IconData check = const LucideIconData(0xf14c);
static const IconData checkCircle = const LucideIconData(0xf14d);
static const IconData checkCircle2 = const LucideIconData(0xf14e);
static const IconData checkSquare = const LucideIconData(0xf14f);
static const IconData chevronDown = const LucideIconData(0xf150);
static const IconData chevronLeft = const LucideIconData(0xf151);
static const IconData chevronRight = const LucideIconData(0xf152);
static const IconData chevronUp = const LucideIconData(0xf153);
static const IconData chevronsDown = const LucideIconData(0xf154);
static const IconData chevronsDownUp = const LucideIconData(0xf155);
static const IconData chevronsLeft = const LucideIconData(0xf156);
static const IconData chevronsRight = const LucideIconData(0xf157);
static const IconData chevronsUp = const LucideIconData(0xf158);
static const IconData chevronsUpDown = const LucideIconData(0xf159);
static const IconData chrome = const LucideIconData(0xf15a);
static const IconData circle = const LucideIconData(0xf15b);
static const IconData circleSlashed = const LucideIconData(0xf15c);
static const IconData clipboard = const LucideIconData(0xf15d);
static const IconData clipboardCheck = const LucideIconData(0xf15e);
static const IconData clipboardCopy = const LucideIconData(0xf15f);
static const IconData clipboardList = const LucideIconData(0xf160);
static const IconData clipboardX = const LucideIconData(0xf161);
static const IconData clock = const LucideIconData(0xf162);
static const IconData cloud = const LucideIconData(0xf163);
static const IconData cloudDrizzle = const LucideIconData(0xf164);
static const IconData cloudFog = const LucideIconData(0xf165);
static const IconData cloudHail = const LucideIconData(0xf166);
static const IconData cloudLightning = const LucideIconData(0xf167);
static const IconData cloudMoon = const LucideIconData(0xf168);
static const IconData cloudOff = const LucideIconData(0xf169);
static const IconData cloudRain = const LucideIconData(0xf16a);
static const IconData cloudRainWind = const LucideIconData(0xf16b);
static const IconData cloudSnow = const LucideIconData(0xf16c);
static const IconData cloudSun = const LucideIconData(0xf16d);
static const IconData cloudy = const LucideIconData(0xf16e);
static const IconData clover = const LucideIconData(0xf16f);
static const IconData code = const LucideIconData(0xf170);
static const IconData code2 = const LucideIconData(0xf171);
static const IconData codepen = const LucideIconData(0xf172);
static const IconData codesandbox = const LucideIconData(0xf173);
static const IconData coffee = const LucideIconData(0xf174);
static const IconData coins = const LucideIconData(0xf175);
static const IconData columns = const LucideIconData(0xf176);
static const IconData command = const LucideIconData(0xf177);
static const IconData compass = const LucideIconData(0xf178);
static const IconData contact = const LucideIconData(0xf179);
static const IconData contrast = const LucideIconData(0xf17a);
static const IconData copy = const LucideIconData(0xf17b);
static const IconData copyleft = const LucideIconData(0xf17c);
static const IconData copyright = const LucideIconData(0xf17d);
static const IconData cornerDownLeft = const LucideIconData(0xf17e);
static const IconData cornerDownRight = const LucideIconData(0xf17f);
static const IconData cornerLeftDown = const LucideIconData(0xf180);
static const IconData cornerLeftUp = const LucideIconData(0xf181);
static const IconData cornerRightDown = const LucideIconData(0xf182);
static const IconData cornerRightUp = const LucideIconData(0xf183);
static const IconData cornerUpLeft = const LucideIconData(0xf184);
static const IconData cornerUpRight = const LucideIconData(0xf185);
static const IconData cpu = const LucideIconData(0xf186);
static const IconData creditCard = const LucideIconData(0xf187);
static const IconData crop = const LucideIconData(0xf188);
static const IconData cross = const LucideIconData(0xf189);
static const IconData crosshair = const LucideIconData(0xf18a);
static const IconData crown = const LucideIconData(0xf18b);
static const IconData currency = const LucideIconData(0xf18c);
static const IconData database = const LucideIconData(0xf18d);
static const IconData delete = const LucideIconData(0xf18e);
static const IconData disc = const LucideIconData(0xf18f);
static const IconData divide = const LucideIconData(0xf190);
static const IconData divideCircle = const LucideIconData(0xf191);
static const IconData divideSquare = const LucideIconData(0xf192);
static const IconData dollarSign = const LucideIconData(0xf193);
static const IconData download = const LucideIconData(0xf194);
static const IconData downloadCloud = const LucideIconData(0xf195);
static const IconData dribbble = const LucideIconData(0xf196);
static const IconData droplet = const LucideIconData(0xf197);
static const IconData droplets = const LucideIconData(0xf198);
static const IconData edit = const LucideIconData(0xf199);
static const IconData edit2 = const LucideIconData(0xf19a);
static const IconData edit3 = const LucideIconData(0xf19b);
static const IconData equal = const LucideIconData(0xf19c);
static const IconData equalNot = const LucideIconData(0xf19d);
static const IconData euro = const LucideIconData(0xf19e);
static const IconData expand = const LucideIconData(0xf19f);
static const IconData externalLink = const LucideIconData(0xf1a0);
static const IconData eye = const LucideIconData(0xf1a1);
static const IconData eyeOff = const LucideIconData(0xf1a2);
static const IconData facebook = const LucideIconData(0xf1a3);
static const IconData fastForward = const LucideIconData(0xf1a4);
static const IconData feather = const LucideIconData(0xf1a5);
static const IconData figma = const LucideIconData(0xf1a6);
static const IconData file = const LucideIconData(0xf1a7);
static const IconData fileCheck = const LucideIconData(0xf1a8);
static const IconData fileCheck2 = const LucideIconData(0xf1a9);
static const IconData fileCode = const LucideIconData(0xf1aa);
static const IconData fileDigit = const LucideIconData(0xf1ab);
static const IconData fileInput = const LucideIconData(0xf1ac);
static const IconData fileMinus = const LucideIconData(0xf1ad);
static const IconData fileMinus2 = const LucideIconData(0xf1ae);
static const IconData fileOutput = const LucideIconData(0xf1af);
static const IconData filePlus = const LucideIconData(0xf1b0);
static const IconData filePlus2 = const LucideIconData(0xf1b1);
static const IconData fileSearch = const LucideIconData(0xf1b2);
static const IconData fileText = const LucideIconData(0xf1b3);
static const IconData fileX = const LucideIconData(0xf1b4);
static const IconData fileX2 = const LucideIconData(0xf1b5);
static const IconData files = const LucideIconData(0xf1b6);
static const IconData film = const LucideIconData(0xf1b7);
static const IconData filter = const LucideIconData(0xf1b8);
static const IconData flag = const LucideIconData(0xf1b9);
static const IconData flame = const LucideIconData(0xf1ba);
static const IconData flashlight = const LucideIconData(0xf1bb);
static const IconData flashlightOff = const LucideIconData(0xf1bc);
static const IconData flaskConical = const LucideIconData(0xf1bd);
static const IconData flaskRound = const LucideIconData(0xf1be);
static const IconData folder = const LucideIconData(0xf1bf);
static const IconData folderMinus = const LucideIconData(0xf1c0);
static const IconData folderPlus = const LucideIconData(0xf1c1);
static const IconData formInput = const LucideIconData(0xf1c2);
static const IconData forward = const LucideIconData(0xf1c3);
static const IconData framer = const LucideIconData(0xf1c4);
static const IconData frown = const LucideIconData(0xf1c5);
static const IconData functionSquare = const LucideIconData(0xf1c6);
static const IconData gamepad = const LucideIconData(0xf1c7);
static const IconData gamepad2 = const LucideIconData(0xf1c8);
static const IconData gauge = const LucideIconData(0xf1c9);
static const IconData gavel = const LucideIconData(0xf1ca);
static const IconData ghost = const LucideIconData(0xf1cb);
static const IconData gift = const LucideIconData(0xf1cc);
static const IconData gitBranch = const LucideIconData(0xf1cd);
static const IconData gitBranchPlus = const LucideIconData(0xf1ce);
static const IconData gitCommit = const LucideIconData(0xf1cf);
static const IconData gitMerge = const LucideIconData(0xf1d0);
static const IconData gitPullRequest = const LucideIconData(0xf1d1);
static const IconData github = const LucideIconData(0xf1d2);
static const IconData gitlab = const LucideIconData(0xf1d3);
static const IconData glasses = const LucideIconData(0xf1d4);
static const IconData globe = const LucideIconData(0xf1d5);
static const IconData globe2 = const LucideIconData(0xf1d6);
static const IconData grab = const LucideIconData(0xf1d7);
static const IconData graduationCap = const LucideIconData(0xf1d8);
static const IconData grid = const LucideIconData(0xf1d9);
static const IconData gripHorizontal = const LucideIconData(0xf1da);
static const IconData gripVertical = const LucideIconData(0xf1db);
static const IconData hammer = const LucideIconData(0xf1dc);
static const IconData hand = const LucideIconData(0xf1dd);
static const IconData handMetal = const LucideIconData(0xf1de);
static const IconData hardDrive = const LucideIconData(0xf1df);
static const IconData hardHat = const LucideIconData(0xf1e0);
static const IconData hash = const LucideIconData(0xf1e1);
static const IconData haze = const LucideIconData(0xf1e2);
static const IconData headphones = const LucideIconData(0xf1e3);
static const IconData heart = const LucideIconData(0xf1e4);
static const IconData helpCircle = const LucideIconData(0xf1e5);
static const IconData hexagon = const LucideIconData(0xf1e6);
static const IconData highlighter = const LucideIconData(0xf1e7);
static const IconData history = const LucideIconData(0xf1e8);
static const IconData home = const LucideIconData(0xf1e9);
static const IconData image = const LucideIconData(0xf1ea);
static const IconData imageMinus = const LucideIconData(0xf1eb);
static const IconData imageOff = const LucideIconData(0xf1ec);
static const IconData imagePlus = const LucideIconData(0xf1ed);
static const IconData import = const LucideIconData(0xf1ee);
static const IconData inbox = const LucideIconData(0xf1ef);
static const IconData indent = const LucideIconData(0xf1f0);
static const IconData indianRupee = const LucideIconData(0xf1f1);
static const IconData infinity = const LucideIconData(0xf1f2);
static const IconData info = const LucideIconData(0xf1f3);
static const IconData inspect = const LucideIconData(0xf1f4);
static const IconData instagram = const LucideIconData(0xf1f5);
static const IconData italic = const LucideIconData(0xf1f6);
static const IconData jerseyPound = const LucideIconData(0xf1f7);
static const IconData key = const LucideIconData(0xf1f8);
static const IconData languages = const LucideIconData(0xf1f9);
static const IconData laptop = const LucideIconData(0xf1fa);
static const IconData laptop2 = const LucideIconData(0xf1fb);
static const IconData lasso = const LucideIconData(0xf1fc);
static const IconData lassoSelect = const LucideIconData(0xf1fd);
static const IconData layers = const LucideIconData(0xf1fe);
static const IconData layout = const LucideIconData(0xf1ff);
static const IconData layoutDashboard = const LucideIconData(0xf200);
static const IconData layoutGrid = const LucideIconData(0xf201);
static const IconData layoutList = const LucideIconData(0xf202);
static const IconData layoutTemplate = const LucideIconData(0xf203);
static const IconData library = const LucideIconData(0xf204);
static const IconData lifeBuoy = const LucideIconData(0xf205);
static const IconData lightbulb = const LucideIconData(0xf206);
static const IconData lightbulbOff = const LucideIconData(0xf207);
static const IconData link = const LucideIconData(0xf208);
static const IconData link2 = const LucideIconData(0xf209);
static const IconData link2Off = const LucideIconData(0xf20a);
static const IconData linkedin = const LucideIconData(0xf20b);
static const IconData list = const LucideIconData(0xf20c);
static const IconData listChecks = const LucideIconData(0xf20d);
static const IconData listOrdered = const LucideIconData(0xf20e);
static const IconData loader = const LucideIconData(0xf20f);
static const IconData loader2 = const LucideIconData(0xf210);
static const IconData locate = const LucideIconData(0xf211);
static const IconData locateFixed = const LucideIconData(0xf212);
static const IconData lock = const LucideIconData(0xf213);
static const IconData logIn = const LucideIconData(0xf214);
static const IconData logOut = const LucideIconData(0xf215);
static const IconData mail = const LucideIconData(0xf216);
static const IconData map = const LucideIconData(0xf217);
static const IconData mapPin = const LucideIconData(0xf218);
static const IconData maximize = const LucideIconData(0xf219);
static const IconData maximize2 = const LucideIconData(0xf21a);
static const IconData meh = const LucideIconData(0xf21b);
static const IconData menu = const LucideIconData(0xf21c);
static const IconData messageCircle = const LucideIconData(0xf21d);
static const IconData messageSquare = const LucideIconData(0xf21e);
static const IconData mic = const LucideIconData(0xf21f);
static const IconData micOff = const LucideIconData(0xf220);
static const IconData minimize = const LucideIconData(0xf221);
static const IconData minimize2 = const LucideIconData(0xf222);
static const IconData minus = const LucideIconData(0xf223);
static const IconData minusCircle = const LucideIconData(0xf224);
static const IconData minusSquare = const LucideIconData(0xf225);
static const IconData monitor = const LucideIconData(0xf226);
static const IconData monitorOff = const LucideIconData(0xf227);
static const IconData monitorSpeaker = const LucideIconData(0xf228);
static const IconData moon = const LucideIconData(0xf229);
static const IconData moreHorizontal = const LucideIconData(0xf22a);
static const IconData moreVertical = const LucideIconData(0xf22b);
static const IconData mountain = const LucideIconData(0xf22c);
static const IconData mountainSnow = const LucideIconData(0xf22d);
static const IconData mousePointer = const LucideIconData(0xf22e);
static const IconData mousePointer2 = const LucideIconData(0xf22f);
static const IconData mousePointerClick = const LucideIconData(0xf230);
static const IconData move = const LucideIconData(0xf231);
static const IconData moveDiagonal = const LucideIconData(0xf232);
static const IconData moveDiagonal2 = const LucideIconData(0xf233);
static const IconData moveHorizontal = const LucideIconData(0xf234);
static const IconData moveVertical = const LucideIconData(0xf235);
static const IconData music = const LucideIconData(0xf236);
static const IconData navigation = const LucideIconData(0xf237);
static const IconData navigation2 = const LucideIconData(0xf238);
static const IconData network = const LucideIconData(0xf239);
static const IconData octagon = const LucideIconData(0xf23a);
static const IconData option = const LucideIconData(0xf23b);
static const IconData outdent = const LucideIconData(0xf23c);
static const IconData package = const LucideIconData(0xf23d);
static const IconData palette = const LucideIconData(0xf23e);
static const IconData paperclip = const LucideIconData(0xf23f);
static const IconData pause = const LucideIconData(0xf240);
static const IconData pauseCircle = const LucideIconData(0xf241);
static const IconData pauseOctagon = const LucideIconData(0xf242);
static const IconData penTool = const LucideIconData(0xf243);
static const IconData pencil = const LucideIconData(0xf244);
static const IconData percent = const LucideIconData(0xf245);
static const IconData personStanding = const LucideIconData(0xf246);
static const IconData phone = const LucideIconData(0xf247);
static const IconData phoneCall = const LucideIconData(0xf248);
static const IconData phoneForwarded = const LucideIconData(0xf249);
static const IconData phoneIncoming = const LucideIconData(0xf24a);
static const IconData phoneMissed = const LucideIconData(0xf24b);
static const IconData phoneOff = const LucideIconData(0xf24c);
static const IconData phoneOutgoing = const LucideIconData(0xf24d);
static const IconData pieChart = const LucideIconData(0xf24e);
static const IconData pipette = const LucideIconData(0xf24f);
static const IconData plane = const LucideIconData(0xf250);
static const IconData play = const LucideIconData(0xf251);
static const IconData playCircle = const LucideIconData(0xf252);
static const IconData plugZap = const LucideIconData(0xf253);
static const IconData plus = const LucideIconData(0xf254);
static const IconData plusCircle = const LucideIconData(0xf255);
static const IconData plusSquare = const LucideIconData(0xf256);
static const IconData pocket = const LucideIconData(0xf257);
static const IconData podcast = const LucideIconData(0xf258);
static const IconData pointer = const LucideIconData(0xf259);
static const IconData poundSterling = const LucideIconData(0xf25a);
static const IconData power = const LucideIconData(0xf25b);
static const IconData powerOff = const LucideIconData(0xf25c);
static const IconData printer = const LucideIconData(0xf25d);
static const IconData qrCode = const LucideIconData(0xf25e);
static const IconData radio = const LucideIconData(0xf25f);
static const IconData radioReceiver = const LucideIconData(0xf260);
static const IconData redo = const LucideIconData(0xf261);
static const IconData refreshCcw = const LucideIconData(0xf262);
static const IconData refreshCw = const LucideIconData(0xf263);
static const IconData regex = const LucideIconData(0xf264);
static const IconData repeat = const LucideIconData(0xf265);
static const IconData repeat1 = const LucideIconData(0xf266);
static const IconData reply = const LucideIconData(0xf267);
static const IconData replyAll = const LucideIconData(0xf268);
static const IconData rewind = const LucideIconData(0xf269);
static const IconData rockingChair = const LucideIconData(0xf26a);
static const IconData rotateCcw = const LucideIconData(0xf26b);
static const IconData rotateCw = const LucideIconData(0xf26c);
static const IconData rss = const LucideIconData(0xf26d);
static const IconData ruler = const LucideIconData(0xf26e);
static const IconData russianRuble = const LucideIconData(0xf26f);
static const IconData save = const LucideIconData(0xf270);
static const IconData scale = const LucideIconData(0xf271);
static const IconData scissors = const LucideIconData(0xf272);
static const IconData screenShare = const LucideIconData(0xf273);
static const IconData screenShareOff = const LucideIconData(0xf274);
static const IconData search = const LucideIconData(0xf275);
static const IconData send = const LucideIconData(0xf276);
static const IconData separatorHorizontal = const LucideIconData(0xf277);
static const IconData separatorVertical = const LucideIconData(0xf278);
static const IconData server = const LucideIconData(0xf279);
static const IconData serverCrash = const LucideIconData(0xf27a);
static const IconData serverOff = const LucideIconData(0xf27b);
static const IconData settings = const LucideIconData(0xf27c);
static const IconData share = const LucideIconData(0xf27d);
static const IconData share2 = const LucideIconData(0xf27e);
static const IconData sheet = const LucideIconData(0xf27f);
static const IconData shield = const LucideIconData(0xf280);
static const IconData shieldAlert = const LucideIconData(0xf281);
static const IconData shieldCheck = const LucideIconData(0xf282);
static const IconData shieldClose = const LucideIconData(0xf283);
static const IconData shieldOff = const LucideIconData(0xf284);
static const IconData shirt = const LucideIconData(0xf285);
static const IconData shoppingBag = const LucideIconData(0xf286);
static const IconData shoppingCart = const LucideIconData(0xf287);
static const IconData shovel = const LucideIconData(0xf288);
static const IconData shrink = const LucideIconData(0xf289);
static const IconData shuffle = const LucideIconData(0xf28a);
static const IconData sidebar = const LucideIconData(0xf28b);
static const IconData sidebarClose = const LucideIconData(0xf28c);
static const IconData sidebarOpen = const LucideIconData(0xf28d);
static const IconData sigma = const LucideIconData(0xf28e);
static const IconData skipBack = const LucideIconData(0xf28f);
static const IconData skipForward = const LucideIconData(0xf290);
static const IconData skull = const LucideIconData(0xf291);
static const IconData slack = const LucideIconData(0xf292);
static const IconData slash = const LucideIconData(0xf293);
static const IconData sliders = const LucideIconData(0xf294);
static const IconData smartphone = const LucideIconData(0xf295);
static const IconData smartphoneCharging = const LucideIconData(0xf296);
static const IconData smile = const LucideIconData(0xf297);
static const IconData snowflake = const LucideIconData(0xf298);
static const IconData sortAsc = const LucideIconData(0xf299);
static const IconData sortDesc = const LucideIconData(0xf29a);
static const IconData speaker = const LucideIconData(0xf29b);
static const IconData sprout = const LucideIconData(0xf29c);
static const IconData square = const LucideIconData(0xf29d);
static const IconData star = const LucideIconData(0xf29e);
static const IconData starHalf = const LucideIconData(0xf29f);
static const IconData stopCircle = const LucideIconData(0xf2a0);
static const IconData strikethrough = const LucideIconData(0xf2a1);
static const IconData sun = const LucideIconData(0xf2a2);
static const IconData sunrise = const LucideIconData(0xf2a3);
static const IconData sunset = const LucideIconData(0xf2a4);
static const IconData swissFranc = const LucideIconData(0xf2a5);
static const IconData switchCamera = const LucideIconData(0xf2a6);
static const IconData table = const LucideIconData(0xf2a7);
static const IconData tablet = const LucideIconData(0xf2a8);
static const IconData tag = const LucideIconData(0xf2a9);
static const IconData target = const LucideIconData(0xf2aa);
static const IconData tent = const LucideIconData(0xf2ab);
static const IconData terminal = const LucideIconData(0xf2ac);
static const IconData terminalSquare = const LucideIconData(0xf2ad);
static const IconData thermometer = const LucideIconData(0xf2ae);
static const IconData thermometerSnowflake = const LucideIconData(0xf2af);
static const IconData thermometerSun = const LucideIconData(0xf2b0);
static const IconData thumbsDown = const LucideIconData(0xf2b1);
static const IconData thumbsUp = const LucideIconData(0xf2b2);
static const IconData ticket = const LucideIconData(0xf2b3);
static const IconData timer = const LucideIconData(0xf2b4);
static const IconData toggleLeft = const LucideIconData(0xf2b5);
static const IconData toggleRight = const LucideIconData(0xf2b6);
static const IconData tornado = const LucideIconData(0xf2b7);
static const IconData trash = const LucideIconData(0xf2b8);
static const IconData trash2 = const LucideIconData(0xf2b9);
static const IconData trello = const LucideIconData(0xf2ba);
static const IconData trendingDown = const LucideIconData(0xf2bb);
static const IconData trendingUp = const LucideIconData(0xf2bc);
static const IconData triangle = const LucideIconData(0xf2bd);
static const IconData truck = const LucideIconData(0xf2be);
static const IconData tv = const LucideIconData(0xf2bf);
static const IconData tv2 = const LucideIconData(0xf2c0);
static const IconData twitch = const LucideIconData(0xf2c1);
static const IconData twitter = const LucideIconData(0xf2c2);
static const IconData type = const LucideIconData(0xf2c3);
static const IconData umbrella = const LucideIconData(0xf2c4);
static const IconData underline = const LucideIconData(0xf2c5);
static const IconData undo = const LucideIconData(0xf2c6);
static const IconData unlink = const LucideIconData(0xf2c7);
static const IconData unlink2 = const LucideIconData(0xf2c8);
static const IconData unlock = const LucideIconData(0xf2c9);
static const IconData upload = const LucideIconData(0xf2ca);
static const IconData uploadCloud = const LucideIconData(0xf2cb);
static const IconData user = const LucideIconData(0xf2cc);
static const IconData userCheck = const LucideIconData(0xf2cd);
static const IconData userMinus = const LucideIconData(0xf2ce);
static const IconData userPlus = const LucideIconData(0xf2cf);
static const IconData userX = const LucideIconData(0xf2d0);
static const IconData users = const LucideIconData(0xf2d1);
static const IconData vibrate = const LucideIconData(0xf2d2);
static const IconData video = const LucideIconData(0xf2d3);
static const IconData videoOff = const LucideIconData(0xf2d4);
static const IconData view = const LucideIconData(0xf2d5);
static const IconData voicemail = const LucideIconData(0xf2d6);
static const IconData volume = const LucideIconData(0xf2d7);
static const IconData volume1 = const LucideIconData(0xf2d8);
static const IconData volume2 = const LucideIconData(0xf2d9);
static const IconData volumeX = const LucideIconData(0xf2da);
static const IconData wallet = const LucideIconData(0xf2db);
static const IconData watch = const LucideIconData(0xf2dc);
static const IconData webcam = const LucideIconData(0xf2dd);
static const IconData wifi = const LucideIconData(0xf2de);
static const IconData wifiOff = const LucideIconData(0xf2df);
static const IconData wind = const LucideIconData(0xf2e0);
static const IconData wrench = const LucideIconData(0xf2e1);
static const IconData x = const LucideIconData(0xf2e2);
static const IconData xCircle = const LucideIconData(0xf2e3);
static const IconData xOctagon = const LucideIconData(0xf2e4);
static const IconData xSquare = const LucideIconData(0xf2e5);
static const IconData youtube = const LucideIconData(0xf2e6);
static const IconData zap = const LucideIconData(0xf2e7);
static const IconData zapOff = const LucideIconData(0xf2e8);
static const IconData zoomIn = const LucideIconData(0xf2e9);
static const IconData zoomOut = const LucideIconData(0xf2ea);
}

View File

@@ -0,0 +1,10 @@
import 'package:flutter/widgets.dart';
class LucideIconData extends IconData {
const LucideIconData(int codePoint)
: super(
codePoint,
fontFamily: 'Lucide',
fontPackage: 'lucide_icons',
);
}

View File

@@ -0,0 +1,175 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
async:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.6.1"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
source: hosted
version: "1.15.0"
csslib:
dependency: transitive
description:
name: csslib
url: "https://pub.dartlang.org"
source: hosted
version: "0.17.0"
fake_async:
dependency: transitive
description:
name: fake_async
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
flutter:
dependency: "direct main"
description: flutter
source: sdk
version: "0.0.0"
flutter_test:
dependency: "direct dev"
description: flutter
source: sdk
version: "0.0.0"
html:
dependency: "direct dev"
description:
name: html
url: "https://pub.dartlang.org"
source: hosted
version: "0.15.0"
lint:
dependency: "direct dev"
description:
name: lint
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.0"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.10"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.0"
recase:
dependency: "direct dev"
description:
name: recase
url: "https://pub.dartlang.org"
source: hosted
version: "4.0.0"
sky_engine:
dependency: transitive
description: flutter
source: sdk
version: "0.0.99"
source_span:
dependency: transitive
description:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.10.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.0"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
sdks:
dart: ">=2.13.0 <3.0.0"
flutter: ">=1.17.0"

View File

@@ -0,0 +1,26 @@
name: lucide_icons
description: Lucide icon pack for Flutter
version: 0.16.0
homepage: https://lucide.dev
repository: https://github.com/lucide-icons/lucide
environment:
sdk: ">=2.12.0 <3.0.0"
flutter: ">=1.17.0"
dependencies:
flutter:
sdk: flutter
dev_dependencies:
flutter_test:
sdk: flutter
html: ^0.15.0
recase: ^4.0.0
lint: ^1.5.3
flutter:
fonts:
- family: Lucide
fonts:
- asset: assets/Lucide.ttf

View File

@@ -0,0 +1,49 @@
import "dart:io";
import 'package:html/parser.dart' show parse;
import 'package:recase/recase.dart';
void main(List<String> args) {
File fontsPreviewFile = File(args[0]);
if (!fontsPreviewFile.existsSync()) {
print('lucide preview file not found');
exit(0);
}
String content = fontsPreviewFile.readAsStringSync();
final c = parse(content);
final list = c.getElementsByClassName('glyph');
List<String> generatedOutput = [
"library lucide_icons;\n",
"import \"package:flutter/widgets.dart\";\n",
"import \"src/icon_data.dart\";\n\n",
"// THIS FILE IS AUTOMATICALLY GENERATED!\n\n",
"class LucideIcons {\n"
];
for (final icon in list) {
final name = icon
.getElementsByClassName('class')
.first
.attributes['value']!
.replaceFirst('.icon-', '');
final val = icon
.getElementsByClassName('point')
.first
.attributes['value']!
.replaceFirst('&#x', '')
.replaceFirst(';', '');
generatedOutput.add(
"static const IconData ${ReCase(name).camelCase} = const LucideIconData(0x$val);\n");
print('$val $name');
}
generatedOutput.add("}\n");
File output = File('./lib/lucide_icons.dart');
output.writeAsStringSync(generatedOutput.join());
}

View File

@@ -1,7 +1,7 @@
{
"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.21",
"version": "0.16.0",
"license": "ISC",
"homepage": "https://lucide.dev",
"bugs": "https://github.com/lucide-icons/lucide/issues",
@@ -19,7 +19,7 @@
"typings": "dist/lucide-preact.d.ts",
"sideEffects": false,
"scripts": {
"build": "yarn clean && yarn build:icons && yarn build:es && yarn build:types && yarn build:bundles",
"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",

View File

@@ -1,6 +1,16 @@
import { h } from 'preact';
import defaultAttributes from './defaultAttributes';
/**
* Converts string to KebabCase
* Copied from scripts/helper. If anyone knows how to properly import it here
* then please fix it.
*
* @param {string} string
* @returns {string} A kebabized string
*/
export const toKebabCase = string => string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
export default (iconName, iconNode) => {
const Component = ({ color = 'currentColor', size = 24, strokeWidth = 2, ...rest }) =>
h(
@@ -11,6 +21,7 @@ export default (iconName, iconNode) => {
height: size,
stroke: color,
'stroke-width': strokeWidth,
class: `lucide lucide-${toKebabCase(iconName)}`,
...rest,
},
iconNode.map(([tag, attrs]) => h(tag, attrs)),

View File

@@ -1,5 +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 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\\" class=\\"lucide lucide-grid\\" 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>"`;
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\\" class=\\"lucide lucide-grid\\"><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>"`;

View File

@@ -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.21",
"version": "0.16.0",
"license": "ISC",
"homepage": "https://lucide.dev",
"bugs": "https://github.com/lucide-icons/lucide/issues",
@@ -19,7 +19,7 @@
"typings": "dist/lucide-react.d.ts",
"sideEffects": false,
"scripts": {
"build": "yarn clean && yarn build:icons && yarn build:es && yarn build:types && yarn build:bundles",
"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": "babel src -d dist/esm",
@@ -37,6 +37,6 @@
},
"peerDependencies": {
"prop-types": "^15.7.2",
"react": "^16.5.1"
"react": "^16.5.1 || ^17.0.0"
}
}

View File

@@ -1,30 +1,22 @@
import path from 'path';
import {
writeFile,
readSvgDirectory,
resetFile,
toPascalCase,
appendFile,
} from '../../../scripts/helpers';
import path from "path";
import {appendFile, readSvgDirectory, resetFile, toPascalCase, writeFile} from "../../../scripts/helpers";
const srcDirectory = path.join(__dirname, '../dist');
const srcDirectory=path.join(__dirname, "../dist");
// Declare type definitions
const typeDefinitions = `\
/// <reference types="vue" />
import { SVGAttributes } from 'vue'
const typeDefinitions=`\
/// <reference types="react" />
import { SVGAttributes } from 'react'
declare module 'lucide-vue-next'
declare module 'lucide-react'
// Create interface extending SVGAttributes
// Create interface extending SVGProps
export interface LucideProps extends Partial<React.SVGProps<SVGSVGElement>> {
color?: string
size?: string | number
stroke?: string | number
strokeWidth?: string | number
}
export type Icon = React.FC<LucideProps>;
// Generated icons
`;

View File

@@ -2,6 +2,16 @@ import { forwardRef, createElement } from 'react';
import PropTypes from 'prop-types';
import defaultAttributes from './defaultAttributes';
/**
* Converts string to KebabCase
* Copied from scripts/helper. If anyone knows how to properly import it here
* then please fix it.
*
* @param {string} string
* @returns {string} A kebabized string
*/
export const toKebabCase = string => string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
export default (iconName, iconNode) => {
const Component = forwardRef(
({ color = 'currentColor', size = 24, strokeWidth = 2, ...rest }, ref) =>
@@ -14,6 +24,7 @@ export default (iconName, iconNode) => {
height: size,
stroke: color,
strokeWidth,
className: `lucide lucide-${toKebabCase(iconName)}`,
...rest,
},
iconNode.map(([tag, attrs]) => createElement(tag, attrs)),

View File

@@ -1,5 +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 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\\" class=\\"lucide lucide-grid\\" 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>"`;
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\\" class=\\"lucide lucide-grid\\"><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>"`;

View File

@@ -1,6 +1,6 @@
{
"name": "lucide-vue-next",
"version": "0.15.21",
"version": "0.16.0",
"author": "Eric Fennis",
"description": "Lucide Vue 3 Package",
"license": "ISC",
@@ -20,9 +20,9 @@
"typings": "dist/lucide-vue-next.d.ts",
"sideEffects": false,
"scripts": {
"build": "yarn clean && yarn build:icons && yarn build:es && yarn build:types && yarn build:bundles",
"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:icons": "yarn --cwd ../../ build:icons --output=../packages/lucide-vue-next/src --templateSrc=../packages/lucide-vue-next/scripts/exportTemplate --renderUniqueKey",
"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",

View File

@@ -1,15 +1,24 @@
import { h } from 'vue';
import defaultAttributes from './defaultAttributes';
/**
* Converts string to KebabCase
* Copied from scripts/helper. If anyone knows how to properly import it here
* then please fix it.
*
* @param {string} string
* @returns {string} A kebabized string
*/
export const toKebabCase = string => string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
const createVueComponent = (iconName, iconNode) => (props, context) =>
h(
'svg',
{
...defaultAttributes,
...{
width: props.size || defaultAttributes.width,
height: props.size || defaultAttributes.height,
},
width: props.size || defaultAttributes.width,
height: props.size || defaultAttributes.height,
class: ['lucide', `lucide-${toKebabCase(iconName)}`],
...context.attrs,
...props,
},

View File

@@ -160,6 +160,7 @@ VueWrapper {
data-v-app=""
>
<svg
class="lucide lucide-smile-icon"
fill="none"
height="24"
stroke="currentColor"
@@ -253,6 +254,7 @@ VueWrapper {
},
"rootVM": Object {},
"wrapperElement": <svg
class="lucide lucide-smile-icon"
fill="none"
height="24"
stroke="currentColor"
@@ -304,6 +306,7 @@ VueWrapper {
data-v-app=""
>
<svg
class="lucide lucide-smile-icon"
fill="none"
height="48"
size="48"
@@ -398,6 +401,7 @@ VueWrapper {
},
"rootVM": Object {},
"wrapperElement": <svg
class="lucide lucide-smile-icon"
fill="none"
height="48"
size="48"
@@ -450,6 +454,7 @@ VueWrapper {
data-v-app=""
>
<svg
class="lucide lucide-smile-icon"
fill="none"
height="24"
stroke="currentColor"
@@ -542,6 +547,7 @@ VueWrapper {
},
"rootVM": Object {},
"wrapperElement": <svg
class="lucide lucide-smile-icon"
fill="none"
height="24"
stroke="currentColor"

View File

@@ -105,3 +105,21 @@ export default {
</div>
</template>
```
## Use with [@nuxt/components](https://github.com/nuxt/components#readme)
### Setup
In your `nuxt.config.js`, add `lucide-vue/nuxt` to your `buildModules`
```js
export default {
buildModules: ['lucide-vue/nuxt']
}
```
### How to use
Icon components are prefixed with `Icon`. Use icon components without importing them.
### Example
```html
<IconCamera color="red" :size="32" />
```

View File

@@ -1,12 +1,14 @@
const mainConfig = require('../../babel.config');
module.exports = {
presets: [
[
'@babel/preset-env',
'@babel/env',
{
targets: {
node: 'current',
},
loose: true,
modules: false,
},
],
],
env: mainConfig.env,
};

View File

@@ -0,0 +1,11 @@
import { join } from 'path';
export default function() {
this.nuxt.hook('components:dirs', dirs => {
dirs.push({
path: join(__dirname, 'dist', 'esm', 'icons'),
prefix: 'Icon',
ignore: ['**/index.js'],
});
});
}

View File

@@ -1,6 +1,6 @@
{
"name": "lucide-vue",
"version": "0.15.21",
"version": "0.16.1",
"author": "Eric Fennis",
"description": "Lucide Vue Package",
"license": "ISC",
@@ -19,7 +19,7 @@
"unpkg": "dist/umd/lucide-vue.min.js",
"sideEffects": false,
"scripts": {
"build": "yarn clean && yarn build:icons && yarn build:es && yarn build:bundles",
"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": "babel src -d dist/esm",

View File

@@ -1,5 +1,15 @@
import defaultAttributes from './defaultAttributes';
/**
* Converts string to KebabCase
* Copied from scripts/helper. If anyone knows how to properly import it here
* then please fix it.
*
* @param {string} string
* @returns {string} A kebabized string
*/
export const toKebabCase = string => string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
export default (iconName, iconNode) => ({
name: iconName,
functional: true,
@@ -18,7 +28,7 @@ export default (iconName, iconNode) => ({
},
defaultClass: {
type: String,
default: 'lucide-icon',
default: `lucide-icon lucide lucide-${toKebabCase(iconName).replace('-icon', '')}`,
},
},
render(
@@ -42,6 +52,7 @@ export default (iconName, iconNode) => ({
'stroke-width': strokeWidth,
...data.attrs,
},
on: data?.on || {}
},
iconNode.map(([tag, attrs]) => createElement(tag, { attrs })),
);

View File

@@ -1,7 +1,7 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Using lucide icon components should add a class to the element 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" class="lucide-icon my-icon">
<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" class="lucide-icon lucide lucide-smile my-icon">
<circle cx="12" cy="12" r="10"></circle>
<path d="M8 14s1.5 2 4 2 4-2 4-2"></path>
<line x1="9" y1="9" x2="9.01" y2="9"></line>
@@ -10,7 +10,7 @@ exports[`Using lucide icon components should add a class to the element 1`] = `
`;
exports[`Using lucide icon components should add a style attribute to the element 1`] = `
<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" style="position: absolute" class="lucide-icon">
<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" style="position: absolute" class="lucide-icon lucide lucide-smile">
<circle cx="12" cy="12" r="10"></circle>
<path d="M8 14s1.5 2 4 2 4-2 4-2"></path>
<line x1="9" y1="9" x2="9.01" y2="9"></line>
@@ -19,7 +19,7 @@ exports[`Using lucide icon components should add a style attribute to the elemen
`;
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" class="lucide-icon">
<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" class="lucide-icon lucide lucide-smile">
<circle cx="12" cy="12" r="10"></circle>
<path d="M8 14s1.5 2 4 2 4-2 4-2"></path>
<line x1="9" y1="9" x2="9.01" y2="9"></line>
@@ -28,7 +28,7 @@ exports[`Using lucide icon components should adjust the size, stroke color and s
`;
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" class="lucide-icon">
<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" class="lucide-icon lucide lucide-smile">
<circle cx="12" cy="12" r="10"></circle>
<path d="M8 14s1.5 2 4 2 4-2 4-2"></path>
<line x1="9" y1="9" x2="9.01" y2="9"></line>

View File

@@ -28,7 +28,7 @@ describe('Using lucide icon components', () => {
})
expect(wrapper).toMatchSnapshot();
expect(String(wrapper.classes())).toBe(String(['lucide-icon', 'my-icon']))
expect(String(wrapper.classes())).toBe(String(['lucide-icon','lucide','lucide-smile', 'my-icon']))
});
it('should add a style attribute to the element', () => {
@@ -36,10 +36,21 @@ describe('Using lucide icon components', () => {
attrs: {
style: 'position: absolute',
}
})
expect(wrapper).toMatchSnapshot();
expect(wrapper.attributes('style')).toContain('position: absolute')
});
it('should call the onClick event', () => {
const onClick = jest.fn()
const wrapper = mount(Smile, {
listeners: {
click: onClick
}
})
wrapper.trigger('click')
expect(onClick).toHaveBeenCalled()
});
});

View File

@@ -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.21",
"version": "0.16.0",
"license": "ISC",
"homepage": "https://lucide.dev",
"bugs": "https://github.com/lucide-icons/lucide/issues",
@@ -19,7 +19,7 @@
"typings": "dist/lucide.d.ts",
"sideEffects": false,
"scripts": {
"build": "yarn clean && yarn build:icons && yarn build:es && yarn build:types && yarn build:bundles",
"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/src",
"build:es": "babel src -d dist/esm",

View File

@@ -73,7 +73,7 @@ export default (element, { nameAttr, icons, attrs }) => {
...attrs,
};
const classNames = combineClassNames(['lucide', elementAttrs, attrs]);
const classNames = combineClassNames(['lucide', `lucide-${iconName}`, elementAttrs, attrs]);
if (classNames) {
iconAttrs.class = classNames;

View File

@@ -1,5 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`createIcons should add custom attributes 1`] = `"<svg xmlns=\\"http://www.w3.org/2000/svg\\" width=\\"24\\" height=\\"24\\" viewBox=\\"0 0 24 24\\" fill=\\"black\\" stroke=\\"currentColor\\" stroke-width=\\"2\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" icon-name=\\"volume-2\\" class=\\"lucide icon custom-class\\"><polygon points=\\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\\"></polygon><path d=\\"M19.07 4.93a10 10 0 010 14.14M15.54 8.46a5 5 0 010 7.07\\"></path></svg>"`;
exports[`createIcons should add custom attributes 1`] = `"<svg xmlns=\\"http://www.w3.org/2000/svg\\" width=\\"24\\" height=\\"24\\" viewBox=\\"0 0 24 24\\" fill=\\"black\\" stroke=\\"currentColor\\" stroke-width=\\"2\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" icon-name=\\"volume-2\\" class=\\"lucide lucide-volume-2 icon custom-class\\"><polygon points=\\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\\"></polygon><path d=\\"M19.07 4.93a10 10 0 010 14.14M15.54 8.46a5 5 0 010 7.07\\"></path></svg>"`;
exports[`createIcons should read elements from DOM and replace it with icons 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\\" icon-name=\\"volume-2\\" class=\\"lucide\\"><polygon points=\\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\\"></polygon><path d=\\"M19.07 4.93a10 10 0 010 14.14M15.54 8.46a5 5 0 010 7.07\\"></path></svg>"`;
exports[`createIcons should read elements from DOM and replace it with icons 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\\" icon-name=\\"volume-2\\" class=\\"lucide lucide-volume-2\\"><polygon points=\\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\\"></polygon><path d=\\"M19.07 4.93a10 10 0 010 14.14M15.54 8.46a5 5 0 010 7.07\\"></path></svg>"`;

View File

@@ -11,7 +11,7 @@ const getOriginalSvg = (iconName) => {
const svgParsed = parseSync(svgContent);
svgParsed.attributes['icon-name'] = iconName;
svgParsed.attributes['class'] = 'lucide';
svgParsed.attributes['class'] = `lucide lucide-${iconName}`;
return stringify(svgParsed, { selfClose: false });
};
@@ -45,7 +45,7 @@ describe('createIcons', () => {
document.body.innerHTML = `<i icon-name="volume-2" class="lucide"></i>`;
const attrs = {
class: 'lucide icon custom-class',
class: 'lucide lucide-volume-2 icon custom-class',
fill: 'black',
};

View File

@@ -2,6 +2,7 @@
import fs from 'fs';
import path from 'path';
import prettier from 'prettier';
import { promises } from 'stream';
import { toPascalCase } from '../helpers';
export default function({ iconNodes, outputDirectory, template, showLog = true, iconFileExtention = '.js' }) {
@@ -12,7 +13,7 @@ export default function({ iconNodes, outputDirectory, template, showLog = true,
fs.mkdirSync(iconsDistDirectory);
}
icons.forEach(iconName => {
const writeIconFiles = icons.map(async iconName => {
const location = path.join(iconsDistDirectory, `${iconName}${iconFileExtention}`);
const componentName = toPascalCase(iconName);
@@ -21,11 +22,16 @@ export default function({ iconNodes, outputDirectory, template, showLog = true,
const elementTemplate = template({ componentName, iconName, children });
fs.writeFileSync(location, prettier.format(elementTemplate, { singleQuote: true, trailingComma: 'all', parser: 'babel' }), 'utf-8');
if(showLog) {
console.log('Successfully built', componentName);
}
await fs.promises.writeFile(location, prettier.format(elementTemplate, { singleQuote: true, trailingComma: 'all', parser: 'babel' }), 'utf-8');
});
Promise.all(writeIconFiles)
.then(() => {
if(showLog) {
console.log('Successfully built', icons.length, 'icons.');
}
})
.catch((error) => {
throw new Error(`Something went wrong generating icon files,\n ${error}`)
})
}

78
scripts/outlineSvg.js Normal file
View File

@@ -0,0 +1,78 @@
import { promises as fs } from 'fs';
import outlineStroke from 'svg-outline-stroke';
import { parse, stringify } from 'svgson'; // eslint-disable-line import/no-extraneous-dependencies
const inputDir = `./icons/`;
const outputDirs = {
'converted_icons-200': '1',
'converted_icons-300': '1.5',
converted_icons: '2',
'converted_icons-500': '2.5',
'converted_icons-600': '3',
};
function transformForward(node) {
if (node.name === 'svg') {
return {
...node,
attributes: {
...node.attributes,
width: 960,
height: 960,
},
};
}
return node;
}
function transformBackwards(node) {
if (node.name === 'svg') {
const { width, height, ...attributes } = node.attributes;
return {
...node,
attributes,
};
}
return node;
}
async function init() {
console.time('icon outliner');
try {
const createDirectories = Object.keys(outputDirs).map(directory => fs.mkdir(`./${directory}`));
await Promise.all(createDirectories);
const icons = await fs.readdir(inputDir);
const parsedIconNodes = await Promise.all(
icons.map(async file => {
const iconContent = await fs.readFile(`${inputDir}${file}`);
const iconNode = await parse(iconContent.toString(), {
transformNode: transformForward,
});
return [file, iconNode];
}),
);
await Promise.all(
Object.entries(outputDirs).map(async ([directory, width]) => {
await Promise.all(
parsedIconNodes.map(async ([file, iconNode]) => {
iconNode.attributes['stroke-width'] = width;
const outlined = await outlineStroke(stringify(iconNode));
const outlinedWithoutAttrs = await parse(outlined, {
transformNode: transformBackwards,
});
await fs.writeFile(`./${directory}/${file}`, stringify(outlinedWithoutAttrs));
}),
);
}),
);
console.timeEnd('icon outliner');
} catch (err) {
console.log(err);
}
}
init();

View File

@@ -1,52 +0,0 @@
const { promises: fs } = require('fs');
const outlineStroke = require('svg-outline-stroke');
const { parse, stringify } = require('svgson');
const inputDir = `./icons/`;
const outputDir = `./converted_icons/`;
async function init() {
try {
const files = await fs.readdir(inputDir);
for (const file of files) {
const icon = await fs.readFile(`${inputDir}${file}`);
const scaled = await parse(icon.toString(), {
transformNode: transformForward,
});
const outlined = await outlineStroke(stringify(scaled));
const outlinedWithoutAttrs = await parse(outlined, {
transformNode: transformBackwards,
});
await fs.writeFile(`${outputDir}${file}`, stringify(outlinedWithoutAttrs));
}
} catch (err) {
console.log(err);
}
}
init();
function transformForward(node) {
if (node.name === 'svg') {
return {
...node,
attributes: {
...node.attributes,
width: 960,
height: 960,
},
};
}
return node;
}
function transformBackwards(node) {
if (node.name === 'svg') {
const { width, height, ...attributes } = node.attributes;
return {
...node,
attributes,
};
}
return node;
}

View File

@@ -1,4 +1,21 @@
const { builtinModules } = require('module')
const rootConfig = require('../.eslintrc.js')
module.exports = rootConfig;
/* eslint-disable no-undef */
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint', 'import', 'prettier'],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:@next/next/recommended',
'prettier',
],
rules: {
'prettier/prettier': [
'error',
{
singleQuote: true,
trailingComma: 'all',
},
],
},
};

7
site/next-env.d.ts vendored
View File

@@ -1,7 +1,6 @@
/// <reference types="next" />
/// <reference types="next/types/global" />
/// <reference types="next/image-types/global" />
declare module "*.svg" {
const content: any;
export default content;
}
// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.

21
site/next.config.js Normal file
View File

@@ -0,0 +1,21 @@
/* eslint-disable no-undef */
module.exports = {
webpack: (config, options) => {
config.module.rules.push({
test: /\.svg/,
use: [
{
loader: 'babel-loader',
},
{
loader: 'react-svg-loader',
options: {
jsx: true,
},
},
],
});
return config;
},
};

View File

@@ -8,6 +8,7 @@
"build": "next build",
"export": "next export -o build",
"deploy": "yarn build && yarn export",
"lint": "eslint .",
"test": "jest"
},
"dependencies": {
@@ -16,16 +17,17 @@
"@emotion/styled": "^11",
"downloadjs": "^1.4.7",
"framer-motion": "^4",
"jszip": "^3.4.0",
"jszip": "^3.7.0",
"lodash": "^4.17.20",
"lucide-react": "0.14.0",
"next": "^10.0.4",
"next": "^11.1.1",
"react": "^17.0.1",
"react-color": "^2.19.3",
"react-dom": "^17.0.1",
"react-svg-loader": "^3.0.3"
},
"devDependencies": {
"@next/eslint-plugin-next": "^11.1.0",
"@testing-library/dom": "^7.24.4",
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.0.4",
@@ -33,10 +35,14 @@
"@types/node": "^14.0.11",
"@types/react": "^16.9.35",
"@types/react-dom": "^16.9.8",
"@typescript-eslint/eslint-plugin": "^4.29.1",
"@typescript-eslint/parser": "^4.29.1",
"babel-jest": "^26.5.2",
"babel-loader": "^8.1.0",
"cheerio": "^1.0.0-rc.3",
"eslint": "^7.32.0",
"jest": "^26.5.2",
"typescript": "^4.2.4"
"prettier": "^2.3.2",
"typescript": "^4.3.5"
}
}

View File

@@ -1,21 +1,20 @@
import { Button, Flex, Link, WrapItem, Text, Wrap } from "@chakra-ui/react";
import download from "downloadjs";
import JSZip from "jszip";
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';
import { IconCustomizerDrawer } from "./IconCustomizerDrawer";
import { IconCustomizerDrawer } from './IconCustomizerDrawer';
function generateZip(icons) {
const zip = new JSZip();
Object.values(icons).forEach((icon) =>
Object.values(icons).forEach(icon =>
// @ts-ignore
zip.file(`${icon.name}.svg`, icon.src)
zip.file(`${icon.name}.svg`, icon.src),
);
return zip.generateAsync({ type: 'blob' });
}
const Header = ({ data }) => {
const downloadAllIcons = async () => {
const zip = await generateZip(data);
download(zip, 'lucide.zip');
};
@@ -28,41 +27,41 @@ const Header = ({ data }) => {
Simply beautiful open source icons, community-sourced
</Text>
<Text fontSize="lg" as="p" textAlign="center" mb="8">
An open-source icon library, a fork of <Link href="https://github.com/feathericons/feather" isExternal>Feather Icons</Link>. <br/>We're expanding the icon set as much as possible while keeping it nice-looking - <Link href={repositoryUrl} isExternal>join us</Link>!
An open-source icon library, a fork of{' '}
<Link href="https://github.com/feathericons/feather" isExternal>
Feather Icons
</Link>
. <br />
We're expanding the icon set as much as possible while keeping it nice-looking -{' '}
<Link href={repositoryUrl} isExternal>
join us
</Link>
!
</Text>
<Wrap
marginTop={3}
marginBottom={10}
spacing="15px"
justify="center"
>
<Wrap marginTop={3} marginBottom={10} spacing="15px" justify="center">
<WrapItem>
<Button
leftIcon={<Download/>}
size="lg"
onClick={downloadAllIcons}
>
<Button leftIcon={<Download />} size="lg" onClick={downloadAllIcons}>
Download all
</Button>
</WrapItem>
<WrapItem>
<IconCustomizerDrawer/>
<IconCustomizerDrawer />
</WrapItem>
<WrapItem>
<Button
as="a"
leftIcon={<Github/>}
size="lg"
href={repositoryUrl}
target="__blank"
onClick={downloadAllIcons}
>
Github
</Button>
<Button
as="a"
leftIcon={<Github />}
size="lg"
href={repositoryUrl}
target="__blank"
onClick={downloadAllIcons}
>
Github
</Button>
</WrapItem>
</Wrap>
</Flex>
)
);
};
export default Header;

View File

@@ -1,26 +1,38 @@
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"
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';
import { Moon, Sun } from 'lucide-react';
import Logo from 'babel-loader!react-svg-loader?jsx=true!../../public/logo.svg';
import Logo from '../../public/logo.svg';
const Layout = ({ children }) => {
const router = useRouter();
const { colorMode, toggleColorMode } = useColorMode();
const text = useColorModeValue('dark', 'light')
const { toggleColorMode } = useColorMode();
const text = useColorModeValue('dark', 'light');
const ColorModeToggle = useColorModeValue(Moon, Sun);
function setQuery(query){
router.push({
pathname: '/',
query: { query: query }
}).then();
function setQuery(query) {
router
.push({
pathname: '/',
query: { query: query },
})
.then();
}
useKeyBindings({
Escape: {
fn: () => setQuery(""),
fn: () => setQuery(''),
},
KeyT: {
fn: () => toggleColorMode(),
@@ -42,45 +54,42 @@ const Layout = ({ children }) => {
>
<Flex justifyContent="center" alignItems="center">
<NextLink href="/" passHref>
<Link display="flex" _hover={{textDecoration: 'none'}}>
<Link display="flex" _hover={{ textDecoration: 'none' }}>
<Icon boxSize={12} marginRight="8px">
<Logo/>
<Logo />
</Icon>
<Text
fontSize="40px"
lineHeight="48px"
>
<Text fontSize="40px" lineHeight="48px">
Lucide
</Text>
</Link>
</NextLink>
</Flex>
<Flex justifyContent="center" alignItems="center">
<Link
href="https://github.com/lucide-icons/lucide"
isExternal
marginRight={6}
fontSize="xl"
>
Github
</Link>
<IconButton
size="md"
fontSize="lg"
aria-label={`Switch to ${text} mode`}
variant="ghost"
color="current"
ml="3"
onClick={toggleColorMode}
icon={<ColorModeToggle />}
/>
<Link
href="https://github.com/lucide-icons/lucide"
isExternal
marginRight={6}
fontSize="xl"
>
Github
</Link>
<IconButton
size="md"
fontSize="lg"
aria-label={`Switch to ${text} mode`}
variant="ghost"
color="current"
ml="3"
onClick={toggleColorMode}
icon={<ColorModeToggle />}
/>
</Flex>
</Flex>
</Flex>
<Flex margin="0 auto" direction="column" maxW="1250px" px={5}>
{children}
<Divider marginBottom={8} />
<p style={{ alignSelf: "center" }}>
<p style={{ alignSelf: 'center' }}>
<a href="https://vercel.com?utm_source=lucide&utm_campaign=oss">
<img src="/vercel.svg" alt="Powered by Vercel" width="200" />
</a>

View File

@@ -6,18 +6,16 @@ class MyDocument extends Document {
return (
<Html>
<Head>
<link
href="https://fonts.googleapis.com/css2?family=Mukta:wght@400;600;700&display=swap"
rel="stylesheet"
/>
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"/>
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"/>
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"/>
<link href="https://fonts.googleapis.com/css2?family=Mukta:wght@400;600;700&display=swap" rel="stylesheet" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="manifest" href="/site.webmanifest"/>
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#F56565"/>
<link rel="icon" type="image/svg+xml" href="/favicon.svg"/>
<meta name="msapplication-TileColor" content="#F56565"/>
<meta name="theme-color" content="#F56565"></meta>
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#F56565" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="msapplication-TileColor" content="#F56565" />
<meta name="theme-color" content="#F56565" />
<meta name="google-site-verification" content="pr2dEIF-6zFdjXlDxutqEokeinrQNLx5qAjeVCqASDY" />
</Head>
<style jsx global>{`
* {

View File

@@ -1,47 +1,48 @@
import { useRouter } from 'next/router'
import IconDetailOverlay from '../../components/IconDetailOverlay'
import { useRouter } from 'next/router';
import IconDetailOverlay from '../../components/IconDetailOverlay';
import { getAllData, getData } from '../../lib/icons';
import IconOverview from '../../components/IconOverview';
import Layout from '../../components/Layout';
import Header from '../../components/Header';
const IconPage = ({ icon, data }) => {
const router = useRouter()
const router = useRouter();
const onClose = () => {
let query = {};
if(router.query.search) {
if (router.query.search) {
query = {
search: router.query.search
search: router.query.search,
};
}
console.log('CLOSE');
router.push({
pathname: '/',
query,
})
}
router.push(
{
pathname: '/',
query,
},
undefined,
{ scroll: false },
);
};
return (
<Layout>
<IconDetailOverlay
key={icon.name}
icon={icon}
close={onClose}
/>
<Header {...{data}}/>
<IconOverview {...{data}}/>
<IconDetailOverlay key={icon.name} icon={icon} close={onClose} />
<Header {...{ data }} />
<IconOverview {...{ data }} />
</Layout>
)
}
);
};
export default IconPage
export default IconPage;
export async function getStaticProps({ params: { iconName } }) {
const data = await getAllData();
const icon = await getData(iconName);
return { props: { icon, data } }
return { props: { icon, data } };
}
export async function getStaticPaths() {
@@ -52,5 +53,5 @@ export async function getStaticPaths() {
params: { iconName },
})),
fallback: false,
}
};
}

File diff suppressed because it is too large Load Diff

View File

@@ -231,6 +231,7 @@
"pairing"
],
"bold": [
"text",
"strong"
],
"book": [
@@ -557,6 +558,10 @@
"winner",
"favourite"
],
"currency": [
"finance",
"money"
],
"database": [
"storage",
"memory"
@@ -853,6 +858,12 @@
"grab": [
"hand"
],
"graduation-cap": [
"school",
"university",
"learn",
"study"
],
"grid": [
"table"
],
@@ -994,6 +1005,13 @@
"languages": [
"translate"
],
"landmark": [
"bank",
"building",
"capitol",
"finance",
"money"
],
"laptop": [
"computer"
],
@@ -1223,6 +1241,16 @@
"menu",
"options"
],
"mountain": [
"climb",
"hike",
"rock"
],
"mountain-snow": [
"alpine",
"climb",
"snow"
],
"mouse-pointer": [
"arrow",
"cursor",
@@ -1417,6 +1445,9 @@
"office",
"device"
],
"quote": [
"quotation"
],
"qr-code": [
"barcode"
],
@@ -1456,6 +1487,11 @@
"rewind": [
"music"
],
"rocking-chair": [
"chair",
"furniture",
"seat"
],
"rotate-ccw": [
"arrow",
"left"

650
yarn.lock
View File

@@ -2042,6 +2042,296 @@
"@types/yargs" "^15.0.0"
chalk "^4.0.0"
"@jimp/bmp@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.14.0.tgz#6df246026554f276f7b354047c6fff9f5b2b5182"
integrity sha512-5RkX6tSS7K3K3xNEb2ygPuvyL9whjanhoaB/WmmXlJS6ub4DjTqrapu8j4qnIWmO4YYtFeTbDTXV6v9P1yMA5A==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
bmp-js "^0.1.0"
"@jimp/core@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/core/-/core-0.14.0.tgz#870c9ca25b40be353ebda1d2abb48723d9010055"
integrity sha512-S62FcKdtLtj3yWsGfJRdFXSutjvHg7aQNiFogMbwq19RP4XJWqS2nOphu7ScB8KrSlyy5nPF2hkWNhLRLyD82w==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
any-base "^1.1.0"
buffer "^5.2.0"
exif-parser "^0.1.12"
file-type "^9.0.0"
load-bmfont "^1.3.1"
mkdirp "^0.5.1"
phin "^2.9.1"
pixelmatch "^4.0.2"
tinycolor2 "^1.4.1"
"@jimp/custom@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.14.0.tgz#1dbbf0094df7403f4e03bc984ed92e7458842f74"
integrity sha512-kQJMeH87+kWJdVw8F9GQhtsageqqxrvzg7yyOw3Tx/s7v5RToe8RnKyMM+kVtBJtNAG+Xyv/z01uYQ2jiZ3GwA==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/core" "^0.14.0"
"@jimp/gif@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.14.0.tgz#db159f57c3cfd1566bbe8b124958791998614960"
integrity sha512-DHjoOSfCaCz72+oGGEh8qH0zE6pUBaBxPxxmpYJjkNyDZP7RkbBkZJScIYeQ7BmJxmGN4/dZn+MxamoQlr+UYg==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
gifwrap "^0.9.2"
omggif "^1.0.9"
"@jimp/jpeg@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.14.0.tgz#8a687a6a653bbbae38c522edef8f84bb418d9461"
integrity sha512-561neGbr+87S/YVQYnZSTyjWTHBm9F6F1obYHiyU3wVmF+1CLbxY3FQzt4YolwyQHIBv36Bo0PY2KkkU8BEeeQ==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
jpeg-js "^0.4.0"
"@jimp/plugin-blit@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-blit/-/plugin-blit-0.14.0.tgz#5eb374be1201313b2113899fb842232d8fcfd345"
integrity sha512-YoYOrnVHeX3InfgbJawAU601iTZMwEBZkyqcP1V/S33Qnz9uzH1Uj1NtC6fNgWzvX6I4XbCWwtr4RrGFb5CFrw==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-blur@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-blur/-/plugin-blur-0.14.0.tgz#fe07e4932d5a2f5d8c9831e245561553224bfc60"
integrity sha512-9WhZcofLrT0hgI7t0chf7iBQZib//0gJh9WcQMUt5+Q1Bk04dWs8vTgLNj61GBqZXgHSPzE4OpCrrLDBG8zlhQ==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-circle@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-circle/-/plugin-circle-0.14.0.tgz#82c0e904a34e90fa672fb9c286bc892e92088ddf"
integrity sha512-o5L+wf6QA44tvTum5HeLyLSc5eVfIUd5ZDVi5iRfO4o6GT/zux9AxuTSkKwnjhsG8bn1dDmywAOQGAx7BjrQVA==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-color@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-color/-/plugin-color-0.14.0.tgz#772bd2d80a88bc66ea1331d010207870f169a74b"
integrity sha512-JJz512SAILYV0M5LzBb9sbOm/XEj2fGElMiHAxb7aLI6jx+n0agxtHpfpV/AePTLm1vzzDxx6AJxXbKv355hBQ==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
tinycolor2 "^1.4.1"
"@jimp/plugin-contain@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-contain/-/plugin-contain-0.14.0.tgz#c68115420d182e696f81bbe76fb5e704909b2b6a"
integrity sha512-RX2q233lGyaxiMY6kAgnm9ScmEkNSof0hdlaJAVDS1OgXphGAYAeSIAwzESZN4x3ORaWvkFefeVH9O9/698Evg==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-cover@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-cover/-/plugin-cover-0.14.0.tgz#4755322589c5885e44e14e31b86b542e907297ce"
integrity sha512-0P/5XhzWES4uMdvbi3beUgfvhn4YuQ/ny8ijs5kkYIw6K8mHcl820HahuGpwWMx56DJLHRl1hFhJwo9CeTRJtQ==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-crop@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-crop/-/plugin-crop-0.14.0.tgz#4cbd856ca84ffc37230fad2534906f2f75aa3057"
integrity sha512-Ojtih+XIe6/XSGtpWtbAXBozhCdsDMmy+THUJAGu2x7ZgKrMS0JotN+vN2YC3nwDpYkM+yOJImQeptSfZb2Sug==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-displace@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-displace/-/plugin-displace-0.14.0.tgz#b0e6a57d00cb1f893f541413fe9d737d23c3b70c"
integrity sha512-c75uQUzMgrHa8vegkgUvgRL/PRvD7paFbFJvzW0Ugs8Wl+CDMGIPYQ3j7IVaQkIS+cAxv+NJ3TIRBQyBrfVEOg==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-dither@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-dither/-/plugin-dither-0.14.0.tgz#9185ec4c38e02edc9e5831f5d709f6ba891e1b93"
integrity sha512-g8SJqFLyYexXQQsoh4dc1VP87TwyOgeTElBcxSXX2LaaMZezypmxQfLTzOFzZoK8m39NuaoH21Ou1Ftsq7LzVQ==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-fisheye@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.14.0.tgz#9f26346cf2fbc660cc2008cd7fd30a83b5029e78"
integrity sha512-BFfUZ64EikCaABhCA6mR3bsltWhPpS321jpeIQfJyrILdpFsZ/OccNwCgpW1XlbldDHIoNtXTDGn3E+vCE7vDg==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-flip@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-flip/-/plugin-flip-0.14.0.tgz#7966d6aa3b5fe1aa4d2d561ff12b8ef5ccb9b071"
integrity sha512-WtL1hj6ryqHhApih+9qZQYA6Ye8a4HAmdTzLbYdTMrrrSUgIzFdiZsD0WeDHpgS/+QMsWwF+NFmTZmxNWqKfXw==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-gaussian@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.14.0.tgz#452bc1971a4467ad9b984aa67f4c200bf941bb65"
integrity sha512-uaLwQ0XAQoydDlF9tlfc7iD9drYPriFe+jgYnWm8fbw5cN+eOIcnneEX9XCOOzwgLPkNCxGox6Kxjn8zY6GxtQ==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-invert@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-invert/-/plugin-invert-0.14.0.tgz#cd31a555860e9f821394936d15af161c09c42921"
integrity sha512-UaQW9X9vx8orQXYSjT5VcITkJPwDaHwrBbxxPoDG+F/Zgv4oV9fP+udDD6qmkgI9taU+44Fy+zm/J/gGcMWrdg==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-mask@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-mask/-/plugin-mask-0.14.0.tgz#52619643ac6222f85e6b27dee33c771ca3a6a4c9"
integrity sha512-tdiGM69OBaKtSPfYSQeflzFhEpoRZ+BvKfDEoivyTjauynbjpRiwB1CaiS8En1INTDwzLXTT0Be9SpI3LkJoEA==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-normalize@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-normalize/-/plugin-normalize-0.14.0.tgz#bf39e356b6d473f582ce95633ad49c9cdb82492b"
integrity sha512-AfY8sqlsbbdVwFGcyIPy5JH/7fnBzlmuweb+Qtx2vn29okq6+HelLjw2b+VT2btgGUmWWHGEHd86oRGSoWGyEQ==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-print@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-print/-/plugin-print-0.14.0.tgz#1c43c2a92a7adc05b464863882cb89ce486d63e6"
integrity sha512-MwP3sH+VS5AhhSTXk7pui+tEJFsxnTKFY3TraFJb8WFbA2Vo2qsRCZseEGwpTLhENB7p/JSsLvWoSSbpmxhFAQ==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
load-bmfont "^1.4.0"
"@jimp/plugin-resize@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.14.0.tgz#ef7fc6c2e45f8bcab62456baf8fd3bc415b02b64"
integrity sha512-qFeMOyXE/Bk6QXN0GQo89+CB2dQcXqoxUcDb2Ah8wdYlKqpi53skABkgVy5pW3EpiprDnzNDboMltdvDslNgLQ==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-rotate@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-rotate/-/plugin-rotate-0.14.0.tgz#3632bc159bf1c3b9ec9f459d9c05d02a11781ee7"
integrity sha512-aGaicts44bvpTcq5Dtf93/8TZFu5pMo/61lWWnYmwJJU1RqtQlxbCLEQpMyRhKDNSfPbuP8nyGmaqXlM/82J0Q==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-scale@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-scale/-/plugin-scale-0.14.0.tgz#d30f0cd1365b8e68f43fa423300ae7f124e9bf10"
integrity sha512-ZcJk0hxY5ZKZDDwflqQNHEGRblgaR+piePZm7dPwPUOSeYEH31P0AwZ1ziceR74zd8N80M0TMft+e3Td6KGBHw==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-shadow@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-shadow/-/plugin-shadow-0.14.0.tgz#471fdb9f109ff2d9e20d533d45e1e18e0b48c749"
integrity sha512-p2igcEr/iGrLiTu0YePNHyby0WYAXM14c5cECZIVnq/UTOOIQ7xIcWZJ1lRbAEPxVVXPN1UibhZAbr3HAb5BjQ==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugin-threshold@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugin-threshold/-/plugin-threshold-0.14.0.tgz#ebd72721c7d1d518c5bb6e494e55d97ac3351d3b"
integrity sha512-N4BlDgm/FoOMV/DQM2rSpzsgqAzkP0DXkWZoqaQrlRxQBo4zizQLzhEL00T/YCCMKnddzgEhnByaocgaaa0fKw==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
"@jimp/plugins@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/plugins/-/plugins-0.14.0.tgz#41dba85f15ab8dadb4162100eb54e5f27b93ee2c"
integrity sha512-vDO3XT/YQlFlFLq5TqNjQkISqjBHT8VMhpWhAfJVwuXIpilxz5Glu4IDLK6jp4IjPR6Yg2WO8TmRY/HI8vLrOw==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/plugin-blit" "^0.14.0"
"@jimp/plugin-blur" "^0.14.0"
"@jimp/plugin-circle" "^0.14.0"
"@jimp/plugin-color" "^0.14.0"
"@jimp/plugin-contain" "^0.14.0"
"@jimp/plugin-cover" "^0.14.0"
"@jimp/plugin-crop" "^0.14.0"
"@jimp/plugin-displace" "^0.14.0"
"@jimp/plugin-dither" "^0.14.0"
"@jimp/plugin-fisheye" "^0.14.0"
"@jimp/plugin-flip" "^0.14.0"
"@jimp/plugin-gaussian" "^0.14.0"
"@jimp/plugin-invert" "^0.14.0"
"@jimp/plugin-mask" "^0.14.0"
"@jimp/plugin-normalize" "^0.14.0"
"@jimp/plugin-print" "^0.14.0"
"@jimp/plugin-resize" "^0.14.0"
"@jimp/plugin-rotate" "^0.14.0"
"@jimp/plugin-scale" "^0.14.0"
"@jimp/plugin-shadow" "^0.14.0"
"@jimp/plugin-threshold" "^0.14.0"
timm "^1.6.1"
"@jimp/png@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/png/-/png-0.14.0.tgz#0f2dddb5125c0795ca7e67c771204c5437fcda4b"
integrity sha512-0RV/mEIDOrPCcNfXSPmPBqqSZYwGADNRVUTyMt47RuZh7sugbYdv/uvKmQSiqRdR0L1sfbCBMWUEa5G/8MSbdA==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.14.0"
pngjs "^3.3.3"
"@jimp/tiff@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.14.0.tgz#a5b25bbe7c43fc3b07bad4e2ab90e0e164c1967f"
integrity sha512-zBYDTlutc7j88G/7FBCn3kmQwWr0rmm1e0FKB4C3uJ5oYfT8645lftUsvosKVUEfkdmOaMAnhrf4ekaHcb5gQw==
dependencies:
"@babel/runtime" "^7.7.2"
utif "^2.0.1"
"@jimp/types@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/types/-/types-0.14.0.tgz#ef681ff702883c5f105b5e4e30d49abf39ee9e34"
integrity sha512-hx3cXAW1KZm+b+XCrY3LXtdWy2U+hNtq0rPyJ7NuXCjU7lZR3vIkpz1DLJ3yDdS70hTi5QDXY3Cd9kd6DtloHQ==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/bmp" "^0.14.0"
"@jimp/gif" "^0.14.0"
"@jimp/jpeg" "^0.14.0"
"@jimp/png" "^0.14.0"
"@jimp/tiff" "^0.14.0"
timm "^1.6.1"
"@jimp/utils@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.14.0.tgz#296254e63118554c62c31c19ac6b8c4bfe6490e5"
integrity sha512-MY5KFYUru0y74IsgM/9asDwb3ERxWxXEu3CRCZEvE7DtT86y1bR1XgtlSliMrptjz4qbivNGMQSvUBpEFJDp1A==
dependencies:
"@babel/runtime" "^7.7.2"
regenerator-runtime "^0.13.3"
"@jridgewell/resolve-uri@1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-1.0.0.tgz#3fdf5798f0b49e90155896f6291df186eac06c83"
@@ -3070,6 +3360,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
dependencies:
color-convert "^2.0.1"
any-base@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe"
integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==
anymatch@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
@@ -3675,6 +3970,11 @@ bluebird@^3.5.5, bluebird@^3.7.2:
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
bmp-js@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233"
integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM=
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
version "4.12.0"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
@@ -3857,6 +4157,11 @@ buffer-crc32@~0.2.3:
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
buffer-equal@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b"
integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=
buffer-from@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
@@ -3881,7 +4186,7 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
buffer@^5.2.1, buffer@^5.5.0:
buffer@^5.2.0, buffer@^5.2.1, buffer@^5.5.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
@@ -4393,7 +4698,7 @@ collection-visit@^1.0.0:
map-visit "^1.0.0"
object-visit "^1.0.0"
color-convert@^1.9.0, color-convert@^1.9.1:
color-convert@^1.9.0, color-convert@^1.9.1, color-convert@^1.9.3:
version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
@@ -4425,6 +4730,14 @@ color-string@^1.5.4:
color-name "^1.0.0"
simple-swizzle "^0.2.2"
color-string@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312"
integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==
dependencies:
color-name "^1.0.0"
simple-swizzle "^0.2.2"
color@^3.0.0:
version "3.1.3"
resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e"
@@ -4433,6 +4746,14 @@ color@^3.0.0:
color-convert "^1.9.1"
color-string "^1.5.4"
color@^3.1.3:
version "3.2.1"
resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164"
integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==
dependencies:
color-convert "^1.9.3"
color-string "^1.6.0"
colorette@^1.2.1, colorette@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
@@ -5194,6 +5515,13 @@ decode-uri-component@^0.2.0:
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
decompress-response@^4.2.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986"
integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==
dependencies:
mimic-response "^2.0.0"
dedent@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
@@ -5211,6 +5539,11 @@ deep-equal@^1.0.1:
object-keys "^1.1.1"
regexp.prototype.flags "^1.2.0"
deep-extend@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
@@ -5337,6 +5670,11 @@ detect-file@^1.0.0:
resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=
detect-libc@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
detect-newline@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
@@ -5453,6 +5791,11 @@ dom-serializer@0:
domelementtype "^2.0.1"
entities "^2.0.0"
dom-walk@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==
domain-browser@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
@@ -6048,6 +6391,11 @@ execa@^4.0.0, execa@^4.1.0:
signal-exit "^3.0.2"
strip-final-newline "^2.0.0"
exif-parser@^0.1.12:
version "0.1.12"
resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922"
integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=
exit@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
@@ -6066,6 +6414,11 @@ expand-brackets@^2.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
expand-template@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c"
integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==
expand-tilde@^2.0.0, expand-tilde@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
@@ -6313,6 +6666,11 @@ file-loader@6.2.0:
loader-utils "^2.0.0"
schema-utils "^3.0.0"
file-type@^9.0.0:
version "9.0.0"
resolved "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz#a68d5ad07f486414dfb2c8866f73161946714a18"
integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==
file-uri-to-path@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
@@ -6667,6 +7025,19 @@ getpass@^0.1.1:
dependencies:
assert-plus "^1.0.0"
gifwrap@^0.9.2:
version "0.9.2"
resolved "https://registry.yarnpkg.com/gifwrap/-/gifwrap-0.9.2.tgz#348e286e67d7cf57942172e1e6f05a71cee78489"
integrity sha512-fcIswrPaiCDAyO8xnWvHSZdWChjKXUanKKpAiWWJ/UTkEi/aYKn5+90e7DE820zbEaVR9CE2y4z9bzhQijZ0BA==
dependencies:
image-q "^1.1.1"
omggif "^1.0.10"
github-from-package@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=
glob-parent@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
@@ -6730,6 +7101,14 @@ global-prefix@^3.0.0:
kind-of "^6.0.2"
which "^1.3.1"
global@~4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406"
integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==
dependencies:
min-document "^2.19.0"
process "^0.11.10"
globals@^11.0.1, globals@^11.1.0:
version "11.12.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
@@ -7264,6 +7643,11 @@ ignore@^5.1.4:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
image-q@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/image-q/-/image-q-1.1.1.tgz#fc84099664460b90ca862d9300b6bfbbbfbf8056"
integrity sha1-/IQJlmRGC5DKhi2TALa/u7+/gFY=
image-size@~0.5.0:
version "0.5.5"
resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
@@ -7354,7 +7738,7 @@ ini@2.0.0:
resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
ini@^1.3.4, ini@^1.3.5:
ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
version "1.3.8"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
@@ -7624,6 +8008,11 @@ is-fullwidth-code-point@^3.0.0:
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
is-function@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08"
integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==
is-generator-fn@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
@@ -8326,6 +8715,22 @@ jest@^26.4.2, jest@^26.6.3:
import-local "^3.0.2"
jest-cli "^26.6.3"
jimp@^0.14.0:
version "0.14.0"
resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.14.0.tgz#fde55f69bdb918c1b01ac633d89a25853af85625"
integrity sha512-8BXU+J8+SPmwwyq9ELihpSV4dWPTiOKBWCEgtkbnxxAVMjXdf3yGmyaLSshBfXc8sP/JQ9OZj5R8nZzz2wPXgA==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/custom" "^0.14.0"
"@jimp/plugins" "^0.14.0"
"@jimp/types" "^0.14.0"
regenerator-runtime "^0.13.3"
jpeg-js@^0.4.0:
version "0.4.3"
resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.3.tgz#6158e09f1983ad773813704be80680550eff977b"
integrity sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==
js-beautify@^1.6.12, js-beautify@^1.6.14:
version "1.13.5"
resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.13.5.tgz#a08a97890cae55daf1d758d3f6577bd4a64d7014"
@@ -8704,6 +9109,20 @@ listr2@^3.2.2:
through "^2.3.8"
wrap-ansi "^7.0.0"
load-bmfont@^1.3.1, load-bmfont@^1.4.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz#c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9"
integrity sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==
dependencies:
buffer-equal "0.0.1"
mime "^1.3.4"
parse-bmfont-ascii "^1.0.3"
parse-bmfont-binary "^1.0.5"
parse-bmfont-xml "^1.1.4"
phin "^2.9.1"
xhr "^2.0.1"
xtend "^4.0.0"
load-json-file@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
@@ -8891,14 +9310,6 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
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"
lz-string@^1.4.4:
version "1.4.4"
resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26"
@@ -9097,7 +9508,7 @@ mime-types@~2.1.17, mime-types@~2.1.24:
dependencies:
mime-db "1.47.0"
mime@1.6.0, mime@^1.4.1:
mime@1.6.0, mime@^1.3.4, mime@^1.4.1:
version "1.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
@@ -9117,6 +9528,18 @@ mimic-fn@^2.1.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
mimic-response@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43"
integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==
min-document@^2.19.0:
version "2.19.0"
resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=
dependencies:
dom-walk "^0.1.0"
mini-css-extract-plugin@1.3.5:
version "1.3.5"
resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.5.tgz#252166e78879c106e0130f229d44e0cbdfcebed3"
@@ -9143,7 +9566,7 @@ minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.4:
dependencies:
brace-expansion "^1.1.7"
minimist@1.x, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5:
minimist@1.x, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
@@ -9234,7 +9657,7 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
mkdirp-classic@^0.5.2:
mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3:
version "0.5.3"
resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
@@ -9338,6 +9761,11 @@ nanomatch@^1.2.9:
snapdragon "^0.8.1"
to-regex "^3.0.1"
napi-build-utils@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806"
integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==
natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@@ -9410,11 +9838,23 @@ no-case@^2.2.0:
dependencies:
lower-case "^1.1.1"
node-abi@^2.21.0:
version "2.30.0"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.0.tgz#8be53bf3e7945a34eea10e0fc9a5982776cf550b"
integrity sha512-g6bZh3YCKQRdwuO/tSZZYJAw622SjsRfJ2X0Iy4sSOHZ34/sPPdVBn8fev2tj7njzLwuqPw9uMtGsGkO5kIQvg==
dependencies:
semver "^5.4.1"
node-addon-api@^1.7.1:
version "1.7.2"
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d"
integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==
node-addon-api@^3.1.0:
version "3.2.1"
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161"
integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==
node-cache@^4.1.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/node-cache/-/node-cache-4.2.1.tgz#efd8474dee4edec4138cdded580f5516500f7334"
@@ -9653,7 +10093,7 @@ npm-run-path@^4.0.0:
dependencies:
path-key "^3.0.0"
npmlog@^4.1.2:
npmlog@^4.0.1, npmlog@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
@@ -9765,6 +10205,11 @@ obuf@^1.0.0, obuf@^1.1.2:
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
omggif@^1.0.10, omggif@^1.0.9:
version "1.0.10"
resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19"
integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==
omit-deep@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/omit-deep/-/omit-deep-0.3.0.tgz#21c8af3499bcadd29651a232cbcacbc52445ebec"
@@ -10010,7 +10455,7 @@ pacote@11.2.4:
ssri "^8.0.0"
tar "^6.1.0"
pako@~1.0.2, pako@~1.0.5:
pako@^1.0.5, pako@~1.0.2, pako@~1.0.5:
version "1.0.11"
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
@@ -10049,6 +10494,29 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5:
pbkdf2 "^3.0.3"
safe-buffer "^5.1.1"
parse-bmfont-ascii@^1.0.3:
version "1.0.6"
resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285"
integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=
parse-bmfont-binary@^1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006"
integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=
parse-bmfont-xml@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389"
integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==
dependencies:
xml-parse-from-string "^1.0.0"
xml2js "^0.4.5"
parse-headers@^2.0.0:
version "2.0.4"
resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.4.tgz#9eaf2d02bed2d1eff494331ce3df36d7924760bf"
integrity sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==
parse-json@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
@@ -10162,9 +10630,9 @@ path-key@^3.0.0, path-key@^3.1.0:
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
path-parse@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
version "1.0.7"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
path-to-regexp@0.1.7:
version "0.1.7"
@@ -10204,6 +10672,11 @@ performance-now@^2.1.0:
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
phin@^2.9.1:
version "2.9.3"
resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c"
integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==
picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
@@ -10238,6 +10711,13 @@ pirates@^4.0.0, pirates@^4.0.1:
dependencies:
node-modules-regexp "^1.0.0"
pixelmatch@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854"
integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=
dependencies:
pngjs "^3.0.0"
pkg-dir@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
@@ -10278,6 +10758,11 @@ pluralize@^7.0.0:
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==
pngjs@^3.0.0, pngjs@^3.3.3:
version "3.4.0"
resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f"
integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==
pnp-webpack-plugin@1.6.4:
version "1.6.4"
resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149"
@@ -10716,11 +11201,37 @@ postcss@^8.1.4, postcss@^8.2.4:
nanoid "^3.1.22"
source-map "^0.6.1"
potrace@2.1.8:
version "2.1.8"
resolved "https://registry.yarnpkg.com/potrace/-/potrace-2.1.8.tgz#50f6fba92e1e39ddef6f979b0a0f841809e0acf2"
integrity sha512-V9hI7UMJyEhNZjM8CbZaP/804ZRLgzWkCS9OOYnEZkszzj3zKR/erRdj0uFMcN3pp6x4B+AIZebmkQgGRinG/g==
dependencies:
jimp "^0.14.0"
preact@^10.5.13:
version "10.5.13"
resolved "https://registry.yarnpkg.com/preact/-/preact-10.5.13.tgz#85f6c9197ecd736ce8e3bec044d08fd1330fa019"
integrity sha512-q/vlKIGNwzTLu+jCcvywgGrt+H/1P/oIRSD6mV4ln3hmlC+Aa34C7yfPI4+5bzW8pONyVXYS7SvXosy2dKKtWQ==
prebuild-install@^6.1.1:
version "6.1.4"
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f"
integrity sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==
dependencies:
detect-libc "^1.0.3"
expand-template "^2.0.3"
github-from-package "0.0.0"
minimist "^1.2.3"
mkdirp-classic "^0.5.3"
napi-build-utils "^1.0.1"
node-abi "^2.21.0"
npmlog "^4.0.1"
pump "^3.0.0"
rc "^1.2.7"
simple-get "^3.0.3"
tar-fs "^2.0.0"
tunnel-agent "^0.6.0"
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -11023,6 +11534,16 @@ raw-loader@4.0.2:
loader-utils "^2.0.0"
schema-utils "^3.0.0"
rc@^1.2.7:
version "1.2.8"
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
dependencies:
deep-extend "^0.6.0"
ini "~1.3.0"
minimist "^1.2.0"
strip-json-comments "~2.0.1"
react-dom@^16.8.6:
version "16.14.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89"
@@ -11185,6 +11706,11 @@ regenerator-runtime@^0.11.0:
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
regenerator-runtime@^0.13.3:
version "0.13.9"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
regenerator-transform@^0.14.2:
version "0.14.5"
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4"
@@ -11820,9 +12346,9 @@ semver-intersect@1.4.0:
semver "^5.0.0"
semver-regex@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807"
integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==
version "3.1.3"
resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.3.tgz#b2bcc6f97f63269f286994e297e229b6245d0dc3"
integrity sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ==
"semver@2 || 3 || 4 || 5", semver@^5.0.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0:
version "5.7.1"
@@ -11846,7 +12372,7 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
semver@^7.0.0, semver@^7.1.1, semver@^7.3.4:
semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5:
version "7.3.5"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
@@ -11959,6 +12485,20 @@ shallow-clone@^3.0.0:
dependencies:
kind-of "^6.0.2"
sharp@0.28.1:
version "0.28.1"
resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.28.1.tgz#9d7bbce1ca95b2c27482243cd4839c62ef40b0b7"
integrity sha512-4mCGMEN4ntaVuFGwHx7FvkJQkIgbI+S+F9a3bI7ugdvKjPr4sF7/ibvlRKhJyzhoQi+ODM+XYY1de8xs7MHbfA==
dependencies:
color "^3.1.3"
detect-libc "^1.0.3"
node-addon-api "^3.1.0"
prebuild-install "^6.1.1"
semver "^7.3.5"
simple-get "^3.1.0"
tar-fs "^2.1.1"
tunnel-agent "^0.6.0"
shebang-command@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
@@ -11998,6 +12538,20 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
simple-concat@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f"
integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==
simple-get@^3.0.3, simple-get@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3"
integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==
dependencies:
decompress-response "^4.2.0"
once "^1.3.1"
simple-concat "^1.0.0"
simple-string-table@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/simple-string-table/-/simple-string-table-1.0.0.tgz#301ce3175260240e7db7f4b734b0a8125b98997e"
@@ -12665,6 +13219,14 @@ supports-hyperlinks@^2.0.0:
has-flag "^4.0.0"
supports-color "^7.0.0"
svg-outline-stroke@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/svg-outline-stroke/-/svg-outline-stroke-1.3.1.tgz#7722c8f886a6971b81fef91fa5f443bec4b07b6f"
integrity sha512-nfSJw3wFJCB8lVupuhD4SZjExZS72W2CF4QDr9tHRxXlbmTUqWKU3uDMMf3EIgryC6Pl458G+Ct9jesM5NUBXQ==
dependencies:
potrace "2.1.8"
sharp "0.28.1"
svgo@^1.0.0, svgo@^1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167"
@@ -12732,7 +13294,7 @@ tapable@^2.2.0:
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b"
integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==
tar-fs@^2.0.0:
tar-fs@^2.0.0, tar-fs@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784"
integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==
@@ -12874,11 +13436,21 @@ timers-browserify@^2.0.4:
dependencies:
setimmediate "^1.0.4"
timm@^1.6.1:
version "1.7.1"
resolved "https://registry.yarnpkg.com/timm/-/timm-1.7.1.tgz#96bab60c7d45b5a10a8a4d0f0117c6b7e5aff76f"
integrity sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==
timsort@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
tinycolor2@^1.4.1:
version "1.4.2"
resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803"
integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==
tmp@0.0.30:
version "0.0.30"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed"
@@ -12901,9 +13473,9 @@ tmp@^0.0.33:
os-tmpdir "~1.0.2"
tmpl@1.0.x:
version "1.0.4"
resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=
version "1.0.5"
resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
to-arraybuffer@^1.0.0:
version "1.0.1"
@@ -13329,6 +13901,13 @@ use@^3.1.0:
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
utif@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759"
integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==
dependencies:
pako "^1.0.5"
util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
@@ -13955,6 +14534,16 @@ ws@^7.2.3, ws@^7.4.4, ws@~7.4.2:
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59"
integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==
xhr@^2.0.1:
version "2.6.0"
resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d"
integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==
dependencies:
global "~4.4.0"
is-function "^1.0.1"
parse-headers "^2.0.0"
xtend "^4.0.0"
xml-lexer@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/xml-lexer/-/xml-lexer-0.2.2.tgz#518193a4aa334d58fc7d248b549079b89907e046"
@@ -13967,6 +14556,11 @@ xml-name-validator@^3.0.0:
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
xml-parse-from-string@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28"
integrity sha1-qQKekp09vN7RafPG4oI42VpdWig=
xml-reader@2.4.3:
version "2.4.3"
resolved "https://registry.yarnpkg.com/xml-reader/-/xml-reader-2.4.3.tgz#9f810caf7c425a5aafb848b1c45103c9e71d7530"
@@ -13975,7 +14569,7 @@ xml-reader@2.4.3:
eventemitter3 "^2.0.0"
xml-lexer "^0.2.2"
xml2js@^0.4.17:
xml2js@^0.4.17, xml2js@^0.4.5:
version "0.4.23"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66"
integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==