Compare commits

...

12 Commits

Author SHA1 Message Date
Eric Fennis
3648e02992 Add cooking-pot icon (#1737)
Co-authored-by: Guillermo Angeles <guillermo.angeles@adoptaunabuelo.com>
2023-12-22 13:53:26 +01:00
Wojciech Maj
64504da1cd Add more tags (#1734) 2023-12-21 14:18:35 +01:00
Daniel Bayley
e166ba4e80 Add materials icons (#1407)
* Add `fence` icon

* Add `anvil` (metal) icon

* Add `brick-wall` icon

* Refine `anvil` icon

* Update icons/anvil.json

Co-authored-by: Karsa <contact@karsa.org>

* Update icons/brick-wall.json

Co-authored-by: Karsa <contact@karsa.org>

* Add `panel` icon

* Refine `brick-wall` icon

* Rename `panel` to `inspection-panel`

---------

Co-authored-by: Karsa <contact@karsa.org>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2023-12-20 09:08:50 +01:00
Wojciech Maj
1123214b13 Add support for react-native-svg ^14.0.0 (#1732)
Closes #1722
2023-12-19 22:59:59 +01:00
Eric Fennis
4140ba5612 bumping up packages (#1728) 2023-12-18 12:04:42 +01:00
Jakob Guddas
019f38281c chore: pull-request workflow refactor (#1729)
* chore: pull-request workflow refactor

* chore: pull-request workflow refactor

* chore: pull-request workflow refactor
2023-12-18 11:03:17 +01:00
Bhargav Shirin Nalamati
633595d1c1 Update README.md (#1653) 2023-12-16 16:34:28 +01:00
Daniel Bayley
df58c3ff2f Add fire/safety/security/amenities icons (#1392)
* Add `fire-extinguisher` icon

* Add `smoke-alarm` icon

* Improve fire related metadata

* Add `fire-alarm` icon

* Add `cctv` icon

* Add `cctv-off` icon

* Update icons/fire-alarm.json

Co-authored-by: Karsa <contact@karsa.org>

* Update icons/fire-alarm.json

Co-authored-by: Karsa <contact@karsa.org>

* Rename `fire-alarm` to `bell-alarm`

* Refine `cctv` icons

* Optimise `bell-alarm` icon

* Rename `bell-alarm` to `bell-electric`

* Rename `smoke-alarm` to `alarm-smoke`

* Refine `alarm-smoke` icon

* Refine `cctv` icons

* Update icons/alarm-smoke.svg

Co-authored-by: Karsa <contact@karsa.org>

* Update icons/cctv.svg

Co-authored-by: Karsa <contact@karsa.org>

* Update icons/fire-extinguisher.svg

Co-authored-by: Karsa <contact@karsa.org>

* update pr workflow

* update pr workflow

* add env

* remove cctv off icons

---------

Co-authored-by: Karsa <contact@karsa.org>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2023-12-16 15:39:40 +01:00
Jakob Guddas
e7abba5273 feat: added renameIcon script (#1630)
* feat: added renameIcon script

* feat: added renameIcon script

* chore: converted renameIcon.sh to mjs

* refactor: cleanup

* Delete scripts/renameIcon.sh
2023-12-16 15:20:08 +01:00
Eric Fennis
2693da38d3 fix: update pr workflow 2023-12-15 16:31:19 +01:00
Jakob Guddas
ab59a1ec36 feat: added pointer-off icon (#1567) 2023-12-15 14:18:47 +01:00
Jakob Guddas
315c020279 Add squircle (#1293)
* Add `squircle`

* Create squircle.json

* Update squircle.svg

* Update icons/squircle.json

* Update squircle.json

* Update squircle.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2023-12-15 13:48:36 +01:00
54 changed files with 2394 additions and 955 deletions

View File

@@ -4,6 +4,8 @@ on:
pull_request_target:
paths:
- 'icons/*.svg'
branches:
- main
jobs:
lint-contributors:
@@ -24,11 +26,12 @@ jobs:
- uses: actions/setup-node@v3.8.1
- name: Install simple-git (safer and faster than installing all deps)
run: npm install simple-git
- env:
- name: Generate annotations
run: node ./scripts/updateContributors.mjs
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
FETCH_DEPTH: ${{ github.event.pull_request.commits }}
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: node ./scripts/updateContributors.mjs
- name: Generate annotations
env:
ANNOTATION_SEVERITY: notice
@@ -46,12 +49,20 @@ jobs:
# - name: Fail if contributors have changed
# run: git diff --exit-code -- icons/*.json
add-changed-icons-comment:
generate-changed-icons-comment-data:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: write
contents: read
outputs:
generate-1px-stroke-width: ${{ steps.generate-1px-stroke-width.outputs.body }}
generate-2px-stroke-width: ${{ steps.generate-2px-stroke-width.outputs.body }}
generate-3px-stroke-width: ${{ steps.generate-3px-stroke-width.outputs.body }}
generate-24px-dpi-preview: ${{ steps.generate-24px-dpi-preview.outputs.body }}
generate-cohesion-check-random: ${{ steps.generate-cohesion-check-random.outputs.body }}
generate-cohesion-check-squares: ${{ steps.generate-cohesion-check-squares.outputs.body }}
generate-x-rays: ${{ steps.generate-x-rays.outputs.body }}
steps:
- uses: actions/checkout@v2
with:
@@ -80,6 +91,8 @@ jobs:
echo "$delimiter" >> $GITHUB_OUTPUT
- name: Generate cohesion check random
id: generate-cohesion-check-random
env:
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
delimiter="$(openssl rand -hex 8)"
echo "body<<$delimiter" >> $GITHUB_OUTPUT
@@ -94,6 +107,8 @@ jobs:
echo "$delimiter" >> $GITHUB_OUTPUT
- name: Generate cohesion check squares
id: generate-cohesion-check-squares
env:
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
delimiter="$(openssl rand -hex 8)"
echo "body<<$delimiter" >> $GITHUB_OUTPUT
@@ -108,6 +123,8 @@ jobs:
echo "$delimiter" >> $GITHUB_OUTPUT
- name: Generate 1px stroke-width
id: generate-1px-stroke-width
env:
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
delimiter="$(openssl rand -hex 8)"
echo "body<<$delimiter" >> $GITHUB_OUTPUT
@@ -122,6 +139,8 @@ jobs:
echo "$delimiter" >> $GITHUB_OUTPUT
- name: Generate 2px stroke-width
id: generate-2px-stroke-width
env:
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
delimiter="$(openssl rand -hex 8)"
echo "body<<$delimiter" >> $GITHUB_OUTPUT
@@ -150,6 +169,8 @@ jobs:
echo "$delimiter" >> $GITHUB_OUTPUT
- name: Generate X-rays
id: generate-x-rays
env:
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
delimiter="$(openssl rand -hex 8)"
echo "body<<$delimiter" >> $GITHUB_OUTPUT
@@ -162,6 +183,14 @@ jobs:
done <<< "$CHANGED_FILES" | tr '\n' ' ' >> $GITHUB_OUTPUT
echo >> $GITHUB_OUTPUT
echo "$delimiter" >> $GITHUB_OUTPUT
add-changed-icons-comment:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
permissions:
pull-requests: write
needs: [generate-changed-icons-comment-data]
steps:
- name: Find Comment
uses: peter-evans/find-comment@v2
id: fc
@@ -176,25 +205,25 @@ jobs:
issue-number: ${{ github.event.pull_request.number }}
body: |
### Added or changed icons
${{ steps.generate-2px-stroke-width.outputs.body }}<br/>
${{ needs.generate-changed-icons-comment-data.outputs.generate-2px-stroke-width }}<br/>
<details>
<summary>Preview cohesion</summary>
${{ steps.generate-cohesion-check-squares.outputs.body }}<br/>
${{ steps.generate-2px-stroke-width.outputs.body }}<br/>
${{ steps.generate-cohesion-check-random.outputs.body }}<br/>
${{ needs.generate-changed-icons-comment-data.outputs.generate-cohesion-check-squares }}<br/>
${{ needs.generate-changed-icons-comment-data.outputs.generate-2px-stroke-width }}<br/>
${{ needs.generate-changed-icons-comment-data.outputs.generate-cohesion-check-random }}<br/>
</details>
<details>
<summary>Preview stroke widths</summary>
${{ steps.generate-1px-stroke-width.outputs.body }}<br/>
${{ steps.generate-2px-stroke-width.outputs.body }}<br/>
${{ steps.generate-3px-stroke-width.outputs.body }}<br/>
${{ needs.generate-changed-icons-comment-data.outputs.generate-1px-stroke-width }}<br/>
${{ needs.generate-changed-icons-comment-data.outputs.generate-2px-stroke-width }}<br/>
${{ needs.generate-changed-icons-comment-data.outputs.generate-3px-stroke-width }}<br/>
</details>
<details>
<summary>DPI Preview (24px)</summary>
${{ steps.generate-24px-dpi-preview.outputs.body }}<br/>
${{ needs.generate-changed-icons-comment-data.outputs.generate-24px-dpi-preview }}
</details>
<details>
<summary>Icon X-rays</summary>
${{ steps.generate-x-rays.outputs.body }}
${{ needs.generate-changed-icons-comment-data.outputs.generate-x-rays }}
</details>
edit-mode: replace

View File

@@ -11,7 +11,7 @@
Community-run fork of [Feather Icons](https://github.com/feathericons/feather), open for anyone to contribute icons.
It began after growing disaffection with the [Feather Icons](https://github.com/feathericons/feather) project moderation. With over 300+ open issues and over 100+ open PRs, the Feather Icons project has been abandoned. This unfortunately means that hundreds of developers and designers wasted their time contributing to Feather Icons with no chance of PRs being accepted.
It began after growing dissatisfaction with the [Feather Icons](https://github.com/feathericons/feather) project moderation. With over 300+ open issues and over 100+ open PRs, the Feather Icons project has been abandoned. This unfortunately means that hundreds of developers and designers wasted their time contributing to Feather Icons with no chance of PRs being accepted.
Lucide is trying to expand the icon set as much as possible while staying faithful to the original simplistic design language. We do this as a community of devs and designers and hope that you'll join us!

View File

@@ -4,7 +4,7 @@ Implementation of the lucide icon library for React Native applications
## Installation
First, ensure that you have `react-native-svg@^12.0.0` installed. Then, install the package:
First, ensure that you have `react-native-svg` (version between 12 and 14) installed. Then, install the package:
::: code-group

21
icons/alarm-smoke.json Normal file
View File

@@ -0,0 +1,21 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley"
],
"tags": [
"fire",
"alert",
"warning",
"detector",
"carbon monoxide",
"safety",
"equipment",
"amenities"
],
"categories": [
"home",
"devices",
"travel"
]
}

17
icons/alarm-smoke.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="M4 8a2 2 0 0 1-2-2V3h20v3a2 2 0 0 1-2 2Z" />
<path d="m19 8-.8 3c-.1.6-.6 1-1.2 1H7c-.6 0-1.1-.4-1.2-1L5 8" />
<path d="M16 21c0-2.5 2-2.5 2-5" />
<path d="M11 21c0-2.5 2-2.5 2-5" />
<path d="M6 21c0-2.5 2-2.5 2-5" />
</svg>

After

Width:  |  Height:  |  Size: 445 B

22
icons/anvil.json Normal file
View File

@@ -0,0 +1,22 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley"
],
"tags": [
"metal",
"iron",
"alloy",
"materials",
"heavy",
"weight",
"blacksmith",
"forge",
"acme"
],
"categories": [
"buildings",
"tools",
"gaming"
]
}

17
icons/anvil.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="M7 10c-2.8 0-5-2.2-5-5h5" />
<path d="M7 4v8h7a8 8 0 0 0 8-8Z" />
<path d="M9 12v5" />
<path d="M15 12v5" />
<path d="M5 20a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3v1H5Z" />
</svg>

After

Width:  |  Height:  |  Size: 390 B

View File

@@ -10,9 +10,12 @@
"physics",
"particle",
"element",
"molecule"
"molecule",
"electricity",
"energy",
"chemistry"
],
"categories": [
"science"
]
}
}

View File

@@ -8,7 +8,18 @@
"karsa-mistmere"
],
"tags": [
"hatchet"
"hatchet",
"weapon",
"chop",
"sharp",
"equipment",
"fireman",
"firefighter",
"brigade",
"lumberjack",
"woodcutter",
"logger",
"forestry"
],
"categories": [
"tools",

View File

@@ -10,6 +10,7 @@
"tags": [
"power",
"electricity",
"energy",
"accumulator",
"charge"
],
@@ -17,4 +18,4 @@
"connectivity",
"devices"
]
}
}

View File

@@ -8,6 +8,7 @@
"tags": [
"power",
"electricity",
"energy",
"accumulator",
"charge"
],
@@ -15,4 +16,4 @@
"connectivity",
"devices"
]
}
}

View File

@@ -8,6 +8,7 @@
"tags": [
"power",
"electricity",
"energy",
"accumulator",
"charge"
],
@@ -15,4 +16,4 @@
"connectivity",
"devices"
]
}
}

View File

@@ -8,6 +8,7 @@
"tags": [
"power",
"electricity",
"energy",
"accumulator",
"charge"
],
@@ -15,4 +16,4 @@
"connectivity",
"devices"
]
}
}

View File

@@ -7,6 +7,7 @@
"tags": [
"power",
"electricity",
"energy",
"accumulator",
"charge",
"exclamation mark"
@@ -15,4 +16,4 @@
"connectivity",
"devices"
]
}
}

View File

@@ -8,6 +8,7 @@
"tags": [
"power",
"electricity",
"energy",
"accumulator",
"charge"
],
@@ -15,4 +16,4 @@
"connectivity",
"devices"
]
}
}

32
icons/bell-electric.json Normal file
View File

@@ -0,0 +1,32 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley"
],
"tags": [
"fire alarm",
"flames",
"smoke",
"firefighter",
"fireman",
"department",
"brigade",
"station",
"emergency",
"alert",
"safety",
"school bell",
"period break",
"recess",
"doorbell",
"entrance",
"entry",
"ring",
"reception"
],
"categories": [
"devices",
"notifications",
"home"
]
}

18
icons/bell-electric.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"
>
<path d="M18.8 4A6.3 8.7 0 0 1 20 9" />
<path d="M9 9h.01" />
<circle cx="9" cy="9" r="7" />
<rect width="10" height="6" x="4" y="16" rx="2" />
<path d="M14 19c3 0 4.6-1.6 4.6-1.6" />
<circle cx="20" cy="16" r="2" />
</svg>

After

Width:  |  Height:  |  Size: 437 B

22
icons/brick-wall.json Normal file
View File

@@ -0,0 +1,22 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley"
],
"tags": [
"bricks",
"mortar",
"cement",
"materials",
"construction",
"builder",
"labourer",
"quantity surveyor",
"blocks",
"stone"
],
"categories": [
"buildings",
"home"
]
}

20
icons/brick-wall.svg Normal file
View File

@@ -0,0 +1,20 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="18" height="18" x="3" y="3" rx="2" />
<path d="M12 9v6" />
<path d="M16 15v6" />
<path d="M16 3v6" />
<path d="M3 15h18" />
<path d="M3 9h18" />
<path d="M8 15v6" />
<path d="M8 3v6" />
</svg>

After

Width:  |  Height:  |  Size: 423 B

View File

@@ -14,6 +14,7 @@
"computer",
"equipment",
"electricity",
"energy",
"electronics",
"recharging",
"charger",
@@ -38,4 +39,4 @@
"devices",
"multimedia"
]
}
}

22
icons/cctv.json Normal file
View File

@@ -0,0 +1,22 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley"
],
"tags": [
"camera",
"surveillance",
"recording",
"film",
"videotape",
"crime",
"watching"
],
"categories": [
"security",
"devices",
"communication",
"connectivity",
"photography"
]
}

17
icons/cctv.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="M7 9h.01" />
<path d="M16.75 12H22l-3.5 7-3.09-4.32" />
<path d="M18 9.5l-4 8-10.39-5.2a2.92 2.92 0 0 1-1.3-3.91L3.69 5.6a2.92 2.92 0 0 1 3.92-1.3Z" />
<path d="M2 19h3.76a2 2 0 0 0 1.8-1.1L9 15" />
<path d="M2 21v-4" />
</svg>

After

Width:  |  Height:  |  Size: 448 B

View File

@@ -13,4 +13,4 @@
"science",
"development"
]
}
}

21
icons/cooking-pot.json Normal file
View File

@@ -0,0 +1,21 @@
{
"$schema": "../icon.schema.json",
"tags": [
"pod",
"cooking",
"recipe",
"food",
"kitchen",
"chef",
"restaurant",
"dinner",
"lunch",
"breakfast",
"meal",
"eat"
],
"categories": [
"food-beverage",
"home"
]
}

16
icons/cooking-pot.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="M2 12h20" />
<path d="M20 12v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8" />
<path d="m4 8 16-4" />
<path d="m8.86 6.78-.45-1.81a2 2 0 0 1 1.45-2.43l1.94-.48a2 2 0 0 1 2.43 1.46l.45 1.8" />
</svg>

After

Width:  |  Height:  |  Size: 406 B

21
icons/fence.json Normal file
View File

@@ -0,0 +1,21 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley"
],
"tags": [
"picket",
"panels",
"woodwork",
"diy",
"materials",
"suburban",
"garden",
"property",
"territory"
],
"categories": [
"home",
"buildings"
]
}

19
icons/fence.svg Normal file
View File

@@ -0,0 +1,19 @@
<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="M4 3 2 5v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z" />
<path d="M6 8h4" />
<path d="M6 18h4" />
<path d="m12 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z" />
<path d="M14 8h4" />
<path d="M14 18h4" />
<path d="m20 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z" />
</svg>

After

Width:  |  Height:  |  Size: 479 B

View File

@@ -0,0 +1,32 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley"
],
"tags": [
"flames",
"smoke",
"foam",
"water",
"spray",
"hose",
"firefighter",
"fireman",
"department",
"brigade",
"station",
"emergency",
"suppress",
"compressed",
"tank",
"cylinder",
"safety",
"equipment",
"amenities"
],
"categories": [
"home",
"tools",
"travel"
]
}

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"
>
<path d="M15 6.5V3a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3.5" />
<path d="M9 18h8" />
<path d="M18 3h-3" />
<path d="M11 3a6 6 0 0 0-6 6v11" />
<path d="M5 13h4" />
<path d="M17 10a4 4 0 0 0-8 0v10a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2Z" />
</svg>

After

Width:  |  Height:  |  Size: 446 B

View File

@@ -7,7 +7,17 @@
],
"tags": [
"fire",
"lit"
"lit",
"burning",
"spark",
"embers",
"smoke",
"firefighter",
"fireman",
"department",
"brigade",
"station",
"emergency"
],
"categories": [
"weather",

View File

@@ -0,0 +1,17 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley"
],
"tags": [
"access",
"cover",
"tile",
"metal",
"materials",
"screws"
],
"categories": [
"tools"
]
}

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"
>
<rect width="18" height="18" x="3" y="3" rx="2" />
<path d="M7 7h.01" />
<path d="M17 7h.01" />
<path d="M7 17h.01" />
<path d="M17 17h.01" />
</svg>

After

Width:  |  Height:  |  Size: 361 B

View File

@@ -6,6 +6,7 @@
],
"tags": [
"electricity",
"energy",
"socket",
"outlet"
],
@@ -13,4 +14,4 @@
"devices",
"development"
]
}
}

View File

@@ -6,6 +6,7 @@
],
"tags": [
"electricity",
"energy",
"electronics",
"charge",
"charging",
@@ -15,4 +16,4 @@
"categories": [
"devices"
]
}
}

View File

@@ -9,6 +9,7 @@
],
"tags": [
"electricity",
"energy",
"electronics",
"charge",
"charging",
@@ -18,4 +19,4 @@
"categories": [
"devices"
]
}
}

View File

@@ -7,6 +7,7 @@
],
"tags": [
"electricity",
"energy",
"electronics",
"socket",
"outlet"
@@ -15,4 +16,4 @@
"devices",
"development"
]
}
}

13
icons/pointer-off.json Normal file
View File

@@ -0,0 +1,13 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"ericfennis",
"jguddas"
],
"tags": [
"mouse"
],
"categories": [
"cursors"
]
}

18
icons/pointer-off.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"
>
<path d="M10 4.5V4a2 2 0 0 0-2.41-1.957" />
<path d="M13.9 8.4a2 2 0 0 0-1.26-1.295" />
<path d="M21.7 16.2A8 8 0 0 0 22 14v-3a2 2 0 1 0-4 0v-1a2 2 0 0 0-3.63-1.158" />
<path d="m7 15-1.8-1.8a2 2 0 0 0-2.79 2.86L6 19.7a7.74 7.74 0 0 0 6 2.3h2a8 8 0 0 0 5.657-2.343" />
<path d="M6 6v8" />
<path d="m2 2 20 20" />
</svg>

After

Width:  |  Height:  |  Size: 533 B

12
icons/squircle.json Normal file
View File

@@ -0,0 +1,12 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"jguddas"
],
"tags": [
"shape"
],
"categories": [
"shapes"
]
}

13
icons/squircle.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="M12 3c7.2 0 9 1.8 9 9s-1.8 9-9 9-9-1.8-9-9 1.8-9 9-9" />
</svg>

After

Width:  |  Height:  |  Size: 276 B

View File

@@ -6,6 +6,7 @@
],
"tags": [
"electricity",
"energy",
"electronics",
"socket",
"outlet",
@@ -15,4 +16,4 @@
"devices",
"development"
]
}
}

View File

@@ -5,11 +5,12 @@
"energy",
"transmission line",
"telegraph pole",
"power lines"
"power lines",
"phone"
],
"categories": [
"buildings",
"home",
"sustainability"
]
}
}

View File

@@ -8,7 +8,9 @@
"tags": [
"flash",
"camera",
"lightning"
"lightning",
"electricity",
"energy"
],
"categories": [
"connectivity",
@@ -16,4 +18,4 @@
"photography",
"weather"
]
}
}

View File

@@ -6,7 +6,9 @@
"tags": [
"flash",
"camera",
"lightning"
"lightning",
"electricity",
"energy"
],
"categories": [
"connectivity",
@@ -14,4 +16,4 @@
"photography",
"weather"
]
}
}

View File

@@ -41,28 +41,28 @@
"@html-eslint/eslint-plugin": "^0.19.1",
"@html-eslint/parser": "^0.19.1",
"@octokit/rest": "^19.0.13",
"@typescript-eslint/eslint-plugin": "^6.14.0",
"@typescript-eslint/parser": "^6.14.0",
"ajv-cli": "^5.0.0",
"eslint": "^8.43.0",
"eslint": "^8.56.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-prettier": "^4.2.1",
"husky": "^8.0.3",
"lint-staged": "^13.2.3",
"minimist": "^1.2.8",
"node-fetch": "^3.3.1",
"p-memoize": "^7.1.1",
"prettier": "2.7.1",
"semver": "^7.5.2",
"simple-git": "^3.19.1",
"svgo": "^3.0.2",
"svgson": "^5.2.1",
"@typescript-eslint/eslint-plugin": "^6.0.0",
"@typescript-eslint/parser": "^6.0.0",
"eslint-config-airbnb-typescript": "^17.1.0",
"eslint-config-prettier": "^8.10.0",
"eslint-import-resolver-alias": "^1.1.2",
"eslint-import-resolver-custom-alias": "^1.3.2",
"eslint-import-resolver-typescript": "^3.6.0",
"eslint-plugin-import": "^2.28.0"
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-prettier": "^4.2.1",
"husky": "^8.0.3",
"lint-staged": "^13.3.0",
"minimist": "^1.2.8",
"node-fetch": "^3.3.2",
"p-memoize": "^7.1.1",
"prettier": "2.7.1",
"semver": "^7.5.4",
"simple-git": "^3.21.0",
"svgo": "^3.1.0",
"svgson": "^5.3.1"
},
"lint-staged": {
"icons/*.svg": [

View File

@@ -6,7 +6,7 @@ Implementation of the lucide icon library for React Native applications.
## Installation
First, ensure that you have`react-native-svg@^12.0.0` or `react-native-svg@^13.0.0` installed. Then, install the package:
First, ensure that you have `react-native-svg` (version between 12 and 14) installed. Then, install the package:
```sh
yarn add lucide-react-native

View File

@@ -55,7 +55,7 @@
"react": "^18.0.0",
"react-dom": "^18.0.0",
"react-native": "^0.69.0",
"react-native-svg": "^13.0.0",
"react-native-svg": "^14.0.0",
"rollup": "^3.5.1",
"typescript": "^4.8.4",
"vite": "^4.4.12",
@@ -65,6 +65,6 @@
"prop-types": "^15.7.2",
"react": "^16.5.1 || ^17.0.0 || ^18.0.0",
"react-native": "*",
"react-native-svg": "^12.0.0 || ^13.0.0"
"react-native-svg": "^12.0.0 || ^13.0.0 || ^14.0.0"
}
}

View File

@@ -26,7 +26,9 @@
"main": "dist/cjs/lucide-solid.js",
"module": "dist/esm/lucide-solid.js",
"types": "dist/types/lucide-solid.d.ts",
"files": ["dist"],
"files": [
"dist"
],
"exports": {
".": {
"types": "./dist/types/lucide-solid.d.ts",
@@ -50,20 +52,20 @@
"version": "pnpm version --git-tag-version=false"
},
"devDependencies": {
"@lucide/build-icons": "workspace:*",
"@atomico/rollup-plugin-sizes": "^1.1.4",
"@lucide/build-icons": "workspace:*",
"@solidjs/testing-library": "^0.8.4",
"@testing-library/jest-dom": "^6.1.4",
"rollup-plugin-license": "^3.0.1",
"babel-preset-solid": "^1.5.4",
"jsdom": "^20.0.0",
"jsdom": "^23.0.1",
"rollup": "^3.5.1",
"rollup-plugin-license": "^3.0.1",
"rollup-preset-solid": "^2.0.1",
"solid-js": "^1.7.7",
"solid-testing-library": "^0.5.1",
"typescript": "^4.9.4",
"vite": "^4.4.12",
"vitest": "^0.32.2",
"vite-plugin-solid": "^2.7.0"
"vite-plugin-solid": "^2.8.0",
"vitest": "^1.0.4"
},
"peerDependencies": {
"solid-js": "^1.4.7"

View File

@@ -1,7 +1,7 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
exports[`Using lucide icon components > should adjust the size, stroke color and stroke width 1`] = `"<svg data-testid=\\"grid-icon\\" width=\\"48\\" height=\\"48\\" stroke=\\"red\\" stroke-width=\\"4\\" class=\\"lucide lucide-grid3x3 \\" xmlns=\\"http://www.w3.org/2000/svg\\" viewBox=\\"0 0 24 24\\" fill=\\"none\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\"><rect width=\\"18\\" height=\\"18\\" x=\\"3\\" y=\\"3\\" rx=\\"2\\" key=\\"afitv7\\"></rect><path d=\\"M3 9h18\\" key=\\"1pudct\\"></path><path d=\\"M3 15h18\\" key=\\"5xshup\\"></path><path d=\\"M9 3v18\\" key=\\"fh3hqa\\"></path><path d=\\"M15 3v18\\" key=\\"14nvp0\\"></path></svg>"`;
exports[`Using lucide icon components > should adjust the size, stroke color and stroke width 1`] = `"<svg data-testid="grid-icon" width="48" height="48" stroke="red" stroke-width="4" class="lucide lucide-grid3x3 " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2" key="afitv7"></rect><path d="M3 9h18" key="1pudct"></path><path d="M3 15h18" key="5xshup"></path><path d="M9 3v18" key="fh3hqa"></path><path d="M15 3v18" key="14nvp0"></path></svg>"`;
exports[`Using lucide icon components > should not scale the strokeWidth when absoluteStrokeWidth is set 1`] = `"<svg data-testid=\\"grid-icon\\" width=\\"48\\" height=\\"48\\" stroke=\\"red\\" stroke-width=\\"1\\" class=\\"lucide lucide-grid3x3 \\" xmlns=\\"http://www.w3.org/2000/svg\\" viewBox=\\"0 0 24 24\\" fill=\\"none\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\"><rect width=\\"18\\" height=\\"18\\" x=\\"3\\" y=\\"3\\" rx=\\"2\\" key=\\"afitv7\\"></rect><path d=\\"M3 9h18\\" key=\\"1pudct\\"></path><path d=\\"M3 15h18\\" key=\\"5xshup\\"></path><path d=\\"M9 3v18\\" key=\\"fh3hqa\\"></path><path d=\\"M15 3v18\\" key=\\"14nvp0\\"></path></svg>"`;
exports[`Using lucide icon components > should not scale the strokeWidth when absoluteStrokeWidth is set 1`] = `"<svg data-testid="grid-icon" width="48" height="48" stroke="red" stroke-width="1" class="lucide lucide-grid3x3 " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2" key="afitv7"></rect><path d="M3 9h18" key="1pudct"></path><path d="M3 15h18" key="5xshup"></path><path d="M9 3v18" key="fh3hqa"></path><path d="M15 3v18" key="14nvp0"></path></svg>"`;
exports[`Using lucide icon components > should render an component 1`] = `"<svg width=\\"24\\" height=\\"24\\" stroke=\\"currentColor\\" stroke-width=\\"2\\" class=\\"lucide lucide-grid3x3 \\" xmlns=\\"http://www.w3.org/2000/svg\\" viewBox=\\"0 0 24 24\\" fill=\\"none\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\"><rect width=\\"18\\" height=\\"18\\" x=\\"3\\" y=\\"3\\" rx=\\"2\\" key=\\"afitv7\\"></rect><path d=\\"M3 9h18\\" key=\\"1pudct\\"></path><path d=\\"M3 15h18\\" key=\\"5xshup\\"></path><path d=\\"M9 3v18\\" key=\\"fh3hqa\\"></path><path d=\\"M15 3v18\\" key=\\"14nvp0\\"></path></svg>"`;
exports[`Using lucide icon components > should render an component 1`] = `"<svg width="24" height="24" stroke="currentColor" stroke-width="2" class="lucide lucide-grid3x3 " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2" key="afitv7"></rect><path d="M3 9h18" key="1pudct"></path><path d="M3 15h18" key="5xshup"></path><path d="M9 3v18" key="fh3hqa"></path><path d="M15 3v18" key="14nvp0"></path></svg>"`;

View File

@@ -1,5 +1,5 @@
import { describe, it, expect } from 'vitest';
import { cleanup, render } from 'solid-testing-library'
import { cleanup, render } from '@solidjs/testing-library'
import { Edit2, Grid, Pen, Droplet } from '../src/lucide-solid'
describe('Using lucide icon components', () => {

View File

@@ -10,9 +10,6 @@ export default defineConfig({
web: [/\.[jt]sx?$/]
},
setupFiles: './tests/setupVitest.js',
// threads: false,
// isolate: false,
// watch: false,
},
resolve: {
conditions: ['development', 'browser'],

2636
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

71
scripts/renameIcon.mjs Normal file
View File

@@ -0,0 +1,71 @@
import simpleGit from 'simple-git';
import fs from 'fs';
import path from 'path';
import { promisify } from 'util';
const oldName = path.basename(process.argv[2]).replace(/\.[^/.]+$/, '');
const newName = path.basename(process.argv[3]).replace(/\.[^/.]+$/, '');
if (!newName || !oldName) {
console.error('Usage: node ./scripts/renameIcon.mjs <oldIcon> <newIcon>');
process.exit(1);
}
if (oldName === newName) {
console.error('ERROR: Old name and new name are the same');
process.exit(1);
}
const git = simpleGit();
async function main() {
try {
if (await fileExists(`icons/${newName}.svg`)) {
console.error(`ERROR: Icon icons/${newName}.svg already exists`);
process.exit(1);
}
if (await fileExists(`icons/${newName}.json`)) {
console.error(`ERROR: Metadata file icons/${newName}.json already exists`);
process.exit(1);
}
if (!(await fileExists(`icons/${oldName}.svg`))) {
console.error(`ERROR: Icon icons/${oldName}.svg doesn't exist`);
process.exit(1);
}
if (!(await fileExists(`icons/${oldName}.json`))) {
console.error(`ERROR: Metadata file icons/${oldName}.json doesn't exist`);
process.exit(1);
}
await git.mv(`icons/${oldName}.svg`, `icons/${newName}.svg`);
await git.mv(`icons/${oldName}.json`, `icons/${newName}.json`);
const json = fs.readFileSync(`icons/${newName}.json`, 'utf8');
const jsonData = JSON.parse(json);
if (Array.isArray(jsonData.aliases)) {
jsonData.aliases.push(oldName);
} else {
jsonData.aliases = [oldName];
}
fs.writeFileSync(`icons/${newName}.json`, JSON.stringify(jsonData, null, 2));
await git.add(`icons/${newName}.json`);
console.log('SUCCESS: Next steps:');
console.log(`git checkout -b rename/${oldName}-to-${newName};`);
console.log(`git commit -m 'Renamed ${oldName} to ${newName}';`);
console.log(`gh pr create --title 'Renamed ${oldName} to ${newName}';`);
console.log('git checkout main;');
} catch (err) {
console.error(err.message);
process.exit(1);
}
}
async function fileExists(filePath) {
try {
await promisify(fs.access)(filePath);
return true;
} catch {
return false;
}
}
main();

View File

@@ -66,7 +66,7 @@ const getContributors = async (file, includeCoAuthors) => {
return Promise.all(Array.from(emails.values()));
};
const files = process.env.CHANGED_FILES.slice(2)
const files = process.env.CHANGED_FILES.split(' ')
.map((file) => file.replace('.json', '.svg'))
.filter((file, idx, arr) => arr.indexOf(file) === idx);