Compare commits

...

16 Commits

Author SHA1 Message Date
Daniel Bayley
716c5baea0 Add radiation/biohazard icons (#1153)
* Add `radiation` icon

* Refine `radiation` icon

* Refine `radiation` icon

* Fix `radiation` corner radius

* Add `biohazard` icon

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2023-04-30 23:57:34 +02:00
Jakob Guddas
890474889a Simplified microscope (#1189) 2023-04-30 22:11:54 +02:00
Jakob Guddas
e596cd2bad Optimized parking-square-off.svg (#1182) 2023-04-30 22:07:29 +02:00
Quentin Sommer
d4641a4641 Fix children handling in lucide-react-native (#1177) 2023-04-30 22:06:49 +02:00
Karsa
3e3409cee2 Adds generic merge and split icons (#1167)
Co-authored-by: Karsa <karsa@karsa.org>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2023-04-30 21:44:15 +02:00
Daniel Bayley
477f2b2aff Improve heading[-16] metadata (#1173) 2023-04-29 11:24:35 +02:00
Jakob Guddas
000ff56278 Optimized and fixed plug-zap (#1120) 2023-04-29 11:08:03 +02:00
Daniel Bayley
7117220943 Add [un]fold icons (#1060)
* Add `fold-vertical` icon

* Add `unfold-vertical` icon

* Add `fold-horizontal` icon

* Add `unfold-horizontal` icon

* Update icons/fold-horizontal.svg

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

* Update icons/fold-vertical.svg

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

* Update icons/unfold-horizontal.svg

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

* Update icons/unfold-vertical.svg

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

---------

Co-authored-by: Karsa <contact@karsa.org>
2023-04-29 11:06:08 +02:00
Eric Fennis
f820da257d Create FUNDING.yml 2023-04-28 22:59:05 +02:00
Daniel Bayley
de629f0fcc Fix removal of sidebar.json (#1174)
Not sure what happened, but `sidebar.json` should have been deleted when replaced with
`panel-left.json` in #1003… This is currently breaking the `pre-commit` hook!
2023-04-28 21:04:02 +02:00
Daniel Bayley
8f7e9b3cde Rename text-selection to text-select (#1131)
This should have been called `text-select`, consistent with `box-select`…
2023-04-28 10:35:35 +02:00
Daniel Bayley
4e79f147cf Add ligature icon (#1160)
* Add `ligature` icon

* Refine `ligature` icon

* Fix missing serifs
2023-04-28 10:33:41 +02:00
Daniel Bayley
3482cd0949 Add rows icon (#1059)
* Add `rows` icon

* Improve `columns` metadata
2023-04-28 10:17:35 +02:00
Daniel Bayley
701f2a1a41 Add panel-* icons (#1003)
* Add `panel-bottom` icon

* Add `panel-bottom-open` icon

* Add `panel-bottom-close` icon

* Add `panel-bottom-inactive` icon

* Rename `sidebar` to `panel-left`

* Rename `sidebar-open` to `panel-left-open`

* Rename `sidebar-close` to `panel-left-close`

* Add `panel-left-inactive` icon

* Add `panel-right` icon

* Add `panel-right-open` icon

* Add `panel-right-close` icon

* Add `panel-right-inactive` icon

* Add `panel-top` icon

* Add `panel-top-open` icon

* Add `panel-top-close` icon

* Add `panel-top-inactive` icon

* Refine `panel-*-inactive` (dashed) icons

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2023-04-28 09:19:14 +02:00
Daniel Bayley
79f5c6e584 Refine gauge icon (#1159)
* Refine `gauge` icon

* Update icons/gauge.svg

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

---------

Co-authored-by: Karsa <contact@karsa.org>
2023-04-28 09:12:04 +02:00
Karsa
02fddd3aac [lucide-angular] Export aliases + fix global configuration issues (#1166)
* [lucide-angular] Exports injection token and provider

* [lucide-angular] Export aliases + fix global config issues

* Add aliases of aliases :)

* Update public-api.ts

---------

Co-authored-by: Karsa <karsa@karsa.org>
2023-04-28 06:26:30 +02:00
75 changed files with 845 additions and 36 deletions

2
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,2 @@
# These are supported funding model platforms
open_collective: lucide-icons

14
icons/biohazard.json Normal file
View File

@@ -0,0 +1,14 @@
{
"$schema": "../icon.schema.json",
"tags": [
"fallout",
"waste",
"biology",
"chemistry",
"chemical",
"element"
],
"categories": [
"science"
]
}

22
icons/biohazard.svg Normal file
View File

@@ -0,0 +1,22 @@
<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="11.9" r="2" />
<path d="M6.7 3.4c-.9 2.5 0 5.2 2.2 6.7C6.5 9 3.7 9.6 2 11.6" />
<path d="m8.9 10.1 1.4.8" />
<path d="M17.3 3.4c.9 2.5 0 5.2-2.2 6.7 2.4-1.2 5.2-.6 6.9 1.5" />
<path d="m15.1 10.1-1.4.8" />
<path d="M16.7 20.8c-2.6-.4-4.6-2.6-4.7-5.3-.2 2.6-2.1 4.8-4.7 5.2" />
<path d="M12 13.9v1.6" />
<path d="M13.5 5.4c-1-.2-2-.2-3 0" />
<path d="M17 16.4c.7-.7 1.2-1.6 1.5-2.5" />
<path d="M5.5 13.9c.3.9.8 1.8 1.5 2.5" />
</svg>

After

Width:  |  Height:  |  Size: 675 B

View File

@@ -1,9 +1,14 @@
{
"$schema": "../icon.schema.json",
"tags": [
"layout"
"split",
"parallel",
"vertical",
"horizontal"
],
"categories": [
"layout",
"design",
"text"
]
}

View File

@@ -0,0 +1,14 @@
{
"$schema": "../icon.schema.json",
"tags": [
"arrow",
"collapse",
"fold",
"vertical",
"dashed"
],
"categories": [
"arrows",
"layout"
]
}

20
icons/fold-horizontal.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"
>
<path d="M2 12h6" />
<path d="M22 12h-6" />
<path d="M12 2v2" />
<path d="M12 8v2" />
<path d="M12 14v2" />
<path d="M12 20v2" />
<path d="m19 9-3 3 3 3" />
<path d="m5 15 3-3-3-3" />
</svg>

After

Width:  |  Height:  |  Size: 408 B

14
icons/fold-vertical.json Normal file
View File

@@ -0,0 +1,14 @@
{
"$schema": "../icon.schema.json",
"tags": [
"arrow",
"collapse",
"fold",
"vertical",
"dashed"
],
"categories": [
"arrows",
"layout"
]
}

20
icons/fold-vertical.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"
>
<path d="M12 22v-6" />
<path d="M12 8V2" />
<path d="M4 12H2" />
<path d="M10 12H8" />
<path d="M16 12h-2" />
<path d="M22 12h-2" />
<path d="m15 19-3-3-3 3" />
<path d="m15 5-3 3-3-3" />
</svg>

After

Width:  |  Height:  |  Size: 412 B

View File

@@ -1,9 +1,17 @@
{
"$schema": "../icon.schema.json",
"tags": [
"dashboard"
"dashboard",
"dial",
"meter",
"speed",
"pressure",
"measure"
],
"categories": [
"account"
"account",
"transportation",
"sports",
"science"
]
}

View File

@@ -9,6 +9,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m12 15 3.5-3.5" />
<path d="M20.3 18c.4-1 .7-2.2.7-3.4C21 9.8 17 6 12 6s-9 3.8-9 8.6c0 1.2.3 2.4.7 3.4" />
<path d="m12 14 4-4" />
<path d="M3.34 19a10 10 0 1 1 17.32 0" />
</svg>

Before

Width:  |  Height:  |  Size: 328 B

After

Width:  |  Height:  |  Size: 278 B

View File

@@ -1,7 +1,13 @@
{
"$schema": "../icon.schema.json",
"tags": [],
"tags": [
"h1",
"html",
"markup",
"markdown"
],
"categories": [
"text"
"text",
"development"
]
}

View File

@@ -1,7 +1,13 @@
{
"$schema": "../icon.schema.json",
"tags": [],
"tags": [
"h2",
"html",
"markup",
"markdown"
],
"categories": [
"text"
"text",
"development"
]
}

View File

@@ -1,7 +1,13 @@
{
"$schema": "../icon.schema.json",
"tags": [],
"tags": [
"h3",
"html",
"markup",
"markdown"
],
"categories": [
"text"
"text",
"development"
]
}

View File

@@ -1,7 +1,13 @@
{
"$schema": "../icon.schema.json",
"tags": [],
"tags": [
"h4",
"html",
"markup",
"markdown"
],
"categories": [
"text"
"text",
"development"
]
}

View File

@@ -1,7 +1,13 @@
{
"$schema": "../icon.schema.json",
"tags": [],
"tags": [
"h5",
"html",
"markup",
"markdown"
],
"categories": [
"text"
"text",
"development"
]
}

View File

@@ -1,7 +1,13 @@
{
"$schema": "../icon.schema.json",
"tags": [],
"tags": [
"h6",
"html",
"markup",
"markdown"
],
"categories": [
"text"
"text",
"development"
]
}

View File

@@ -1,7 +1,13 @@
{
"$schema": "../icon.schema.json",
"tags": [],
"tags": [
"h1",
"html",
"markup",
"markdown"
],
"categories": [
"text"
"text",
"development"
]
}

13
icons/ligature.json Normal file
View File

@@ -0,0 +1,13 @@
{
"$schema": "../icon.schema.json",
"tags": [
"text",
"font",
"typography",
"alternates",
"alternatives"
],
"categories": [
"text"
]
}

17
icons/ligature.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="M8 20V8c0-2.2 1.8-4 4-4 1.5 0 2.8.8 3.5 2" />
<path d="M6 12h4" />
<path d="M14 12h2v8" />
<path d="M6 20h4" />
<path d="M14 20h4" />
</svg>

After

Width:  |  Height:  |  Size: 361 B

12
icons/merge.json Normal file
View File

@@ -0,0 +1,12 @@
{
"$schema": "../icon.schema.json",
"tags": [
"combine",
"join",
"unite"
],
"categories": [
"development",
"arrows"
]
}

15
icons/merge.svg Normal file
View File

@@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m8 6 4-4 4 4" />
<path d="M12 2v10.3a4 4 0 0 1-1.172 2.872L4 22" />
<path d="m20 22-5-5" />
</svg>

After

Width:  |  Height:  |  Size: 315 B

View File

@@ -13,6 +13,6 @@
<path d="M3 22h18" />
<path d="M14 22a7 7 0 1 0 0-14h-1" />
<path d="M9 14h2" />
<path d="M8 6h4" />
<path d="M13 10V6.5a.5.5 0 0 0-.5-.5.5.5 0 0 1-.5-.5V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v2.5a.5.5 0 0 1-.5.5.5.5 0 0 0-.5.5V10c0 1.1.9 2 2 2h2a2 2 0 0 0 2-2Z" />
<path d="M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z" />
<path d="M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3" />
</svg>

Before

Width:  |  Height:  |  Size: 500 B

After

Width:  |  Height:  |  Size: 429 B

View File

@@ -1,7 +1,9 @@
{
"$schema": "../icon.schema.json",
"tags": [
"menu"
"drawer",
"dock",
"hide"
],
"categories": [
"layout",

View File

@@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="18" height="18" x="3" y="3" rx="2" ry="2" />
<line x1="3" x2="21" y1="15" y2="15" />
<path d="m15 8-3 3-3-3" />
</svg>

After

Width:  |  Height:  |  Size: 339 B

View File

@@ -0,0 +1,13 @@
{
"$schema": "../icon.schema.json",
"tags": [
"drawer",
"dock",
"show",
"reveal",
"dashed"
],
"categories": [
"layout"
]
}

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="M14 15h1" />
<path d="M19 15h2" />
<path d="M3 15h2" />
<path d="M9 15h1" />
</svg>

After

Width:  |  Height:  |  Size: 355 B

View File

@@ -0,0 +1,13 @@
{
"$schema": "../icon.schema.json",
"tags": [
"drawer",
"dock",
"show",
"reveal"
],
"categories": [
"layout",
"arrows"
]
}

View File

@@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="18" height="18" x="3" y="3" rx="2" ry="2" />
<line x1="3" x2="21" y1="15" y2="15" />
<path d="m9 10 3-3 3 3" />
</svg>

After

Width:  |  Height:  |  Size: 339 B

View File

@@ -1,7 +1,8 @@
{
"$schema": "../icon.schema.json",
"tags": [
"menu"
"drawer",
"dock"
],
"categories": [
"layout"

14
icons/panel-bottom.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 width="18" height="18" x="3" y="3" rx="2" ry="2" />
<line x1="3" x2="21" y1="15" y2="15" />
</svg>

After

Width:  |  Height:  |  Size: 310 B

View File

@@ -0,0 +1,15 @@
{
"$schema": "../icon.schema.json",
"tags": [
"primary",
"drawer",
"hide"
],
"categories": [
"layout",
"arrows"
],
"aliases": [
"sidebar-close"
]
}

View File

Before

Width:  |  Height:  |  Size: 321 B

After

Width:  |  Height:  |  Size: 321 B

View File

@@ -0,0 +1,14 @@
{
"$schema": "../icon.schema.json",
"tags": [
"sidebar",
"primary",
"drawer",
"show",
"reveal",
"dashed"
],
"categories": [
"layout"
]
}

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="M9 14v1" />
<path d="M9 19v2" />
<path d="M9 3v2" />
<path d="M9 9v1" />
</svg>

After

Width:  |  Height:  |  Size: 351 B

View File

@@ -0,0 +1,16 @@
{
"$schema": "../icon.schema.json",
"tags": [
"primary",
"drawer",
"show",
"reveal"
],
"categories": [
"layout",
"arrows"
],
"aliases": [
"sidebar-open"
]
}

View File

Before

Width:  |  Height:  |  Size: 320 B

After

Width:  |  Height:  |  Size: 320 B

13
icons/panel-left.json Normal file
View File

@@ -0,0 +1,13 @@
{
"$schema": "../icon.schema.json",
"tags": [
"primary",
"drawer"
],
"categories": [
"layout"
],
"aliases": [
"sidebar"
]
}

View File

Before

Width:  |  Height:  |  Size: 308 B

After

Width:  |  Height:  |  Size: 308 B

View File

@@ -0,0 +1,13 @@
{
"$schema": "../icon.schema.json",
"tags": [
"sidebar",
"secondary",
"drawer",
"hide"
],
"categories": [
"layout",
"arrows"
]
}

View File

@@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="18" height="18" x="3" y="3" rx="2" ry="2" />
<line x1="15" x2="15" y1="3" y2="21" />
<path d="m8 9 3 3-3 3" />
</svg>

After

Width:  |  Height:  |  Size: 338 B

View File

@@ -0,0 +1,14 @@
{
"$schema": "../icon.schema.json",
"tags": [
"sidebar",
"secondary",
"drawer",
"show",
"reveal",
"dashed"
],
"categories": [
"layout"
]
}

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="M15 14v1" />
<path d="M15 19v2" />
<path d="M15 3v2" />
<path d="M15 9v1" />
</svg>

After

Width:  |  Height:  |  Size: 355 B

View File

@@ -0,0 +1,14 @@
{
"$schema": "../icon.schema.json",
"tags": [
"sidebar",
"secondary",
"drawer",
"show",
"reveal"
],
"categories": [
"layout",
"arrows"
]
}

View File

@@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="18" height="18" x="3" y="3" rx="2" ry="2" />
<line x1="15" x2="15" y1="3" y2="21" />
<path d="m10 15-3-3 3-3" />
</svg>

After

Width:  |  Height:  |  Size: 340 B

11
icons/panel-right.json Normal file
View File

@@ -0,0 +1,11 @@
{
"$schema": "../icon.schema.json",
"tags": [
"sidebar",
"secondary",
"drawer"
],
"categories": [
"layout"
]
}

14
icons/panel-right.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 width="18" height="18" x="3" y="3" rx="2" ry="2" />
<line x1="15" x2="15" y1="3" y2="21" />
</svg>

After

Width:  |  Height:  |  Size: 310 B

View File

@@ -1,7 +1,9 @@
{
"$schema": "../icon.schema.json",
"tags": [
"menu"
"menu bar",
"drawer",
"hide"
],
"categories": [
"layout",

15
icons/panel-top-close.svg Normal file
View File

@@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="18" height="18" x="3" y="3" rx="2" ry="2" />
<line x1="3" x2="21" y1="9" y2="9" />
<path d="m9 16 3-3 3 3" />
</svg>

After

Width:  |  Height:  |  Size: 337 B

View File

@@ -0,0 +1,13 @@
{
"$schema": "../icon.schema.json",
"tags": [
"menu bar",
"drawer",
"show",
"reveal",
"dashed"
],
"categories": [
"layout"
]
}

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="M14 9h1" />
<path d="M19 9h2" />
<path d="M3 9h2" />
<path d="M9 9h1" />
</svg>

After

Width:  |  Height:  |  Size: 351 B

13
icons/panel-top-open.json Normal file
View File

@@ -0,0 +1,13 @@
{
"$schema": "../icon.schema.json",
"tags": [
"menu bar",
"drawer",
"show",
"reveal"
],
"categories": [
"layout",
"arrows"
]
}

15
icons/panel-top-open.svg Normal file
View File

@@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="18" height="18" x="3" y="3" rx="2" ry="2" />
<line x1="3" x2="21" y1="9" y2="9" />
<path d="m15 14-3 3-3-3" />
</svg>

After

Width:  |  Height:  |  Size: 338 B

14
icons/panel-top.json Normal file
View File

@@ -0,0 +1,14 @@
{
"$schema": "../icon.schema.json",
"tags": [
"drawer",
"menu bar",
"browser",
"webpage"
],
"categories": [
"layout",
"design",
"development"
]
}

14
icons/panel-top.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 width="18" height="18" x="3" y="3" rx="2" ry="2" />
<line x1="3" x2="21" y1="9" y2="9" />
</svg>

After

Width:  |  Height:  |  Size: 308 B

View File

@@ -9,9 +9,9 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3.59 3.59A2 2 0 0 1 5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-.59 1.41" />
<path d="M3 8.66V19c0 1.1.9 2 2 2h10.34" />
<path d="M3.6 3.6A2 2 0 0 1 5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-.59 1.41" />
<path d="M3 8.7V19a2 2 0 0 0 2 2h10.3" />
<path d="m2 2 20 20" />
<path d="M13 13a3 3 0 1 0 0-6H9v2" />
<path d="M9 17v-2.34" />
<path d="M9 17v-2.3" />
</svg>

Before

Width:  |  Height:  |  Size: 426 B

After

Width:  |  Height:  |  Size: 421 B

View File

@@ -9,10 +9,9 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<rect x="8" y="13" width="8" height="6" rx="2" />
<path d="m13 2-2 2.5h3L12 7" />
<path d="M12 22v-3" />
<path d="M10 13v-2.5" />
<path d="M10 12.5v-2" />
<path d="M14 12.5v-2" />
<path d="M16 15a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-2z" />
<path d="M14 13v-2.5" />
</svg>

Before

Width:  |  Height:  |  Size: 437 B

After

Width:  |  Height:  |  Size: 373 B

17
icons/radiation.json Normal file
View File

@@ -0,0 +1,17 @@
{
"$schema": "../icon.schema.json",
"tags": [
"radioactive",
"nuclear",
"fallout",
"waste",
"atomic",
"physics",
"particle",
"element",
"molecule"
],
"categories": [
"science"
]
}

16
icons/radiation.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="M12 12h0" />
<path d="M7.5 4.2c-.3-.5-.9-.7-1.3-.4C3.9 5.5 2.3 8.1 2 11c-.1.5.4 1 1 1h5c0-1.5.8-2.8 2-3.4-1.1-1.9-2-3.5-2.5-4.4z" />
<path d="M21 12c.6 0 1-.4 1-1-.3-2.9-1.8-5.5-4.1-7.1-.4-.3-1.1-.2-1.3.3-.6.9-1.5 2.5-2.6 4.3 1.2.7 2 2 2 3.5h5z" />
<path d="M7.5 19.8c-.3.5-.1 1.1.4 1.3 2.6 1.2 5.6 1.2 8.2 0 .5-.2.7-.8.4-1.3-.5-.9-1.4-2.5-2.5-4.3-1.2.7-2.8.7-4 0-1.1 1.8-2 3.4-2.5 4.3z" />
</svg>

After

Width:  |  Height:  |  Size: 616 B

17
icons/rows.json Normal file
View File

@@ -0,0 +1,17 @@
{
"$schema": "../icon.schema.json",
"tags": [
"split",
"lines",
"queue",
"series",
"list",
"vertical",
"horizontal"
],
"categories": [
"layout",
"design",
"text"
]
}

14
icons/rows.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 width="18" height="18" x="3" y="3" rx="2" ry="2" />
<line x1="3" x2="21" y1="12" y2="12" />
</svg>

After

Width:  |  Height:  |  Size: 310 B

15
icons/split.json Normal file
View File

@@ -0,0 +1,15 @@
{
"$schema": "../icon.schema.json",
"tags": [
"break",
"disband",
"divide",
"separate",
"branch",
"disunite"
],
"categories": [
"development",
"arrows"
]
}

16
icons/split.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="M16 3h5v5" />
<path d="M8 3H3v5" />
<path d="M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3" />
<path d="m15 9 6-6" />
</svg>

After

Width:  |  Height:  |  Size: 335 B

View File

@@ -2,10 +2,14 @@
"$schema": "../icon.schema.json",
"tags": [
"find",
"search"
"search",
"selection"
],
"categories": [
"text",
"cursors"
],
"aliases": [
"text-selection"
]
}
}

View File

Before

Width:  |  Height:  |  Size: 656 B

After

Width:  |  Height:  |  Size: 656 B

View File

@@ -0,0 +1,14 @@
{
"$schema": "../icon.schema.json",
"tags": [
"arrow",
"collapse",
"fold",
"vertical",
"dashed"
],
"categories": [
"arrows",
"layout"
]
}

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"
>
<path d="M16 12h6" />
<path d="M8 12H2" />
<path d="M12 2v2" />
<path d="M12 8v2" />
<path d="M12 14v2" />
<path d="M12 20v2" />
<path d="m19 15 3-3-3-3" />
<path d="m5 9-3 3 3 3" />
</svg>

After

Width:  |  Height:  |  Size: 407 B

View File

@@ -0,0 +1,13 @@
{
"$schema": "../icon.schema.json",
"tags": [
"arrow",
"expand",
"vertical",
"dashed"
],
"categories": [
"arrows",
"layout"
]
}

20
icons/unfold-vertical.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"
>
<path d="M12 22v-6" />
<path d="M12 8V2" />
<path d="M4 12H2" />
<path d="M10 12H8" />
<path d="M16 12h-2" />
<path d="M22 12h-2" />
<path d="m15 19-3 3-3-3" />
<path d="m15 5-3-3-3 3" />
</svg>

After

Width:  |  Height:  |  Size: 412 B

View File

@@ -28,7 +28,7 @@
"build": "pnpm clean && pnpm copy:license && pnpm build:icons && pnpm build:ng",
"copy:license": "cp ../../LICENSE ./LICENSE",
"clean": "rm -rf dist && rm -rf ./src/icons/*.ts",
"build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mjs --iconFileExtension=.ts --exportFileName=lucide-icons.ts",
"build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mjs --renderUniqueKey --withAliases --aliasesFileExtension=.ts --iconFileExtension=.ts --exportFileName=lucide-icons.ts",
"build:ng": "ng build --configuration production",
"test": "ng test --no-watch --no-progress --browsers=ChromeHeadlessCI",
"test:watch": "ng test",

View File

@@ -66,11 +66,11 @@ export class LucideAngularComponent implements OnChanges {
ngOnChanges(changes: LucideAngularComponentChanges): void {
this.color = this.color ?? this.iconConfig.color;
this.size = this.parseNumber(this.size ?? this.defaultSize);
this.size = this.parseNumber(this.size ?? this.iconConfig.size);
this.strokeWidth = this.parseNumber(
this.strokeWidth ?? this.iconConfig.strokeWidth
);
this.absoluteStrokeWidth = this.absoluteStrokeWidth ?? false;
this.absoluteStrokeWidth = this.absoluteStrokeWidth ?? this.iconConfig.absoluteStrokeWidth;
if (changes.name || changes.img) {
const name = changes.img?.currentValue ?? changes.name?.currentValue;
if (typeof name === 'string') {

View File

@@ -5,4 +5,5 @@ export * from './lib/lucide-angular.module';
export * from './lib/lucide-icon.config';
export * from './lib/lucide-icon.provider';
export * from './icons/lucide-icons';
export * from './aliases';
export { icons };

View File

@@ -30,7 +30,9 @@ const createLucideIcon = (iconName: string, iconNode: IconNode) => {
const upperCasedTag = (tag.charAt(0).toUpperCase() + tag.slice(1)) as keyof (typeof NativeSvg);
return createElement(NativeSvg[upperCasedTag] as FunctionComponent<Record<string, string>>, attrs);
}),
...(children as ReactNode[] || []),
...(
(Array.isArray(children) ? children : [children]) || []
),
],
),
);

View File

@@ -5,3 +5,7 @@ exports[`Using lucide icon components > should adjust the size, stroke color and
exports[`Using lucide icon components > should not scale the strokeWidth when absoluteStrokeWidth is set 1`] = `"<svg xmlns=\\"http://www.w3.org/2000/svg\\" width=\\"48\\" height=\\"48\\" viewBox=\\"0 0 24 24\\" fill=\\"none\\" stroke=\\"red\\" stroke-width=\\"1\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" data-testid=\\"grid-icon\\"><rect width=\\"18\\" height=\\"18\\" x=\\"3\\" y=\\"3\\" rx=\\"2\\" ry=\\"2\\"></rect><line x1=\\"3\\" x2=\\"21\\" y1=\\"9\\" y2=\\"9\\"></line><line x1=\\"3\\" x2=\\"21\\" y1=\\"15\\" y2=\\"15\\"></line><line x1=\\"9\\" x2=\\"9\\" y1=\\"3\\" y2=\\"21\\"></line><line x1=\\"15\\" x2=\\"15\\" y1=\\"3\\" 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 width=\\"18\\" height=\\"18\\" x=\\"3\\" y=\\"3\\" rx=\\"2\\" ry=\\"2\\"></rect><line x1=\\"3\\" x2=\\"21\\" y1=\\"9\\" y2=\\"9\\"></line><line x1=\\"3\\" x2=\\"21\\" y1=\\"15\\" y2=\\"15\\"></line><line x1=\\"9\\" x2=\\"9\\" y1=\\"3\\" y2=\\"21\\"></line><line x1=\\"15\\" x2=\\"15\\" y1=\\"3\\" y2=\\"21\\"></line></svg>"`;
exports[`Using lucide icon components > should work with a single child 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\\" data-testid=\\"single-child\\"><rect width=\\"18\\" height=\\"18\\" x=\\"3\\" y=\\"3\\" rx=\\"2\\" ry=\\"2\\"></rect><line x1=\\"3\\" x2=\\"21\\" y1=\\"9\\" y2=\\"9\\"></line><line x1=\\"3\\" x2=\\"21\\" y1=\\"15\\" y2=\\"15\\"></line><line x1=\\"9\\" x2=\\"9\\" y1=\\"3\\" y2=\\"21\\"></line><line x1=\\"15\\" x2=\\"15\\" y1=\\"3\\" y2=\\"21\\"></line><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\\" data-testid=\\"child\\"><rect width=\\"18\\" height=\\"18\\" x=\\"3\\" y=\\"3\\" rx=\\"2\\" ry=\\"2\\"></rect><line x1=\\"3\\" x2=\\"21\\" y1=\\"9\\" y2=\\"9\\"></line><line x1=\\"3\\" x2=\\"21\\" y1=\\"15\\" y2=\\"15\\"></line><line x1=\\"9\\" x2=\\"9\\" y1=\\"3\\" y2=\\"21\\"></line><line x1=\\"15\\" x2=\\"15\\" y1=\\"3\\" y2=\\"21\\"></line></svg></svg>"`;
exports[`Using lucide icon components > should work with several children components 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\\" data-testid=\\"multiple-children\\"><rect width=\\"18\\" height=\\"18\\" x=\\"3\\" y=\\"3\\" rx=\\"2\\" ry=\\"2\\"></rect><line x1=\\"3\\" x2=\\"21\\" y1=\\"9\\" y2=\\"9\\"></line><line x1=\\"3\\" x2=\\"21\\" y1=\\"15\\" y2=\\"15\\"></line><line x1=\\"9\\" x2=\\"9\\" y1=\\"3\\" y2=\\"21\\"></line><line x1=\\"15\\" x2=\\"15\\" y1=\\"3\\" y2=\\"21\\"></line><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\\" data-testid=\\"child1\\"><rect width=\\"18\\" height=\\"18\\" x=\\"3\\" y=\\"3\\" rx=\\"2\\" ry=\\"2\\"></rect><line x1=\\"3\\" x2=\\"21\\" y1=\\"9\\" y2=\\"9\\"></line><line x1=\\"3\\" x2=\\"21\\" y1=\\"15\\" y2=\\"15\\"></line><line x1=\\"9\\" x2=\\"9\\" y1=\\"3\\" y2=\\"21\\"></line><line x1=\\"15\\" x2=\\"15\\" y1=\\"3\\" y2=\\"21\\"></line></svg><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\\" data-testid=\\"child2\\"><rect width=\\"18\\" height=\\"18\\" x=\\"3\\" y=\\"3\\" rx=\\"2\\" ry=\\"2\\"></rect><line x1=\\"3\\" x2=\\"21\\" y1=\\"9\\" y2=\\"9\\"></line><line x1=\\"3\\" x2=\\"21\\" y1=\\"15\\" y2=\\"15\\"></line><line x1=\\"9\\" x2=\\"9\\" y1=\\"3\\" y2=\\"21\\"></line><line x1=\\"15\\" x2=\\"15\\" y1=\\"3\\" y2=\\"21\\"></line></svg></svg>"`;

View File

@@ -80,4 +80,40 @@ describe('Using lucide icon components', () => {
expect( container.innerHTML ).toMatchSnapshot();
});
it('should work with a single child component', () => {
const testId = "single-child";
const childId = "child";
const { container, getByTestId } = render(
<Grid data-testid={testId}>
<Grid data-testid={childId}/>
</Grid>
);
const { children} = getByTestId(testId) as unknown as{ children: HTMLCollection};
const lastChild = children[children.length -1];
expect(lastChild).toEqual(getByTestId(childId));
expect(container.innerHTML).toMatchSnapshot();
})
it('should work with several children components', () => {
const testId = "multiple-children";
const childId1 = "child1";
const childId2 = "child2";
const { container, getByTestId } = render(
<Grid data-testid={testId}>
<Grid data-testid={childId1}/>
<Grid data-testid={childId2}/>
</Grid>
);
const {children} = getByTestId(testId) as unknown as{ children: HTMLCollection};
const child1 = children[children.length - 2];
const child2 = children[children.length - 1];
expect(child1).toEqual(getByTestId(childId1));
expect(child2).toEqual(getByTestId(childId2));
expect(container.innerHTML).toMatchSnapshot();
})
})

View File

@@ -32,6 +32,8 @@ export default function generateAliasesFile({
iconAliases.forEach((alias) => {
const componentNameAlias = toPascalCase(alias);
importString += getImportString(componentNameAlias, iconName, aliasImportFileExtension);
importString += getImportString(`${componentNameAlias}Icon`, iconName, aliasImportFileExtension);
importString += getImportString(`Lucide${componentNameAlias}`, iconName, aliasImportFileExtension);
});
}