Compare commits

..
11 Commits
Author SHA1 Message Date
Simon CoudevilleandKarsa 59978cecf8 feat(icons): added midi-port icon (#3754)
* Added icons/midi.svg

* Added icons/midi.json

* Update midi.svg

* Update midi.json

* Update midi.json

* Update midi.json

* Rename midi.json to midi-port.json

* Rename midi.svg to midi-port.svg

---------

Co-authored-by: Karsa <contact@karsa.org>
2026-08-19 13:37:05 +02:00
Jakob Guddas 2c9b468404 feat(icon-discussions): close discussions with banned phrases (#4692)
* feat: close discussions with band phrases

* feat: close discussions with band phrases

* feat: close discussions with band phrases
2026-08-19 13:09:53 +02:00
dependabot[bot]dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Eric Fennis
7c758075a3 chore(deps-dev): bump the svelte-deps group with 3 updates (#4720)
Bumps the svelte-deps group with 3 updates: [@sveltejs/vite-plugin-svelte](https://github.com/sveltejs/vite-plugin-svelte/tree/HEAD/packages/vite-plugin-svelte), [svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte) and [svelte-check](https://github.com/sveltejs/language-tools).


Updates `@sveltejs/vite-plugin-svelte` from 7.2.0 to 7.3.0
- [Release notes](https://github.com/sveltejs/vite-plugin-svelte/releases)
- [Changelog](https://github.com/sveltejs/vite-plugin-svelte/blob/main/packages/vite-plugin-svelte/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/vite-plugin-svelte/commits/@sveltejs/vite-plugin-svelte@7.3.0/packages/vite-plugin-svelte)

Updates `svelte` from 5.56.8 to 5.56.9
- [Release notes](https://github.com/sveltejs/svelte/releases)
- [Changelog](https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/svelte/commits/svelte@5.56.9/packages/svelte)

Updates `svelte-check` from 4.7.4 to 4.7.6
- [Release notes](https://github.com/sveltejs/language-tools/releases)
- [Commits](https://github.com/sveltejs/language-tools/compare/svelte-check@4.7.4...svelte-check@4.7.6)

---
updated-dependencies:
- dependency-name: "@sveltejs/vite-plugin-svelte"
  dependency-version: 7.3.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: svelte-deps
- dependency-name: svelte
  dependency-version: 5.56.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: svelte-deps
- dependency-name: svelte-check
  dependency-version: 4.7.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: svelte-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2026-08-19 09:57:54 +02:00
Eric FennisandCopilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> 15804aa9eb Potential fix for code scanning alert no. 31: Inefficient regular expression (#4723)
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-08-19 09:36:16 +02:00
Karsagithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>Eric Fennis
86eb89c794 feat(icons): added mop icon (#4682)
* Added icons/mop.svg

* Added icons/mop.json

* Added icons/mop-sparkles.svg

* Added icons/mop-sparkles.json

* feat(icons): fill out metadata for mop & mop-sparkles

* Update icons/mop.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-18 16:55:10 +02:00
Jakob Guddas a08ebd74dc chore(discussion-template): add icon design template (#4691) 2026-08-18 14:14:42 +02:00
Karsagithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>Eric Fennis
51b9aa19de feat(icons): added audio-lines-off icon (#4589)
* Added icons/audio-lines-off.svg

* Added icons/audio-lines-off.json

* fix(icons/audio-lines-off): fill in metadata

* Apply suggestions from code review

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-18 14:03:58 +02:00
Hugo Moreira c0ea22e282 docs(site): correct Vanilla icon import casing (#4597) 2026-08-18 13:37:48 +02:00
KarsaandEric Fennis 2e88f33494 feat(icons): added usb-c-port icon (#4556)
* Added icons/usb-c-port.svg

* Added icons/usb-c-port.json

* Update usb-c-port.json

* Updated icons/usb-c-port.svg

* Updated icons/usb-c-port.json

* Update usb-c-port.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2026-08-18 13:34:16 +02:00
Samuel Alakegithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>Eric FennisKarsa
c5b33f81f8 feat(icons): add square-dimensions (#4547)
* feat(icons): add aspect-ratio

Adds an aspect-ratio icon: a frame with two opposing corner brackets,
depicting the proportions of a frame rather than the frame itself.

Distinct from ratio, which is two overlapping rects showing portrait and
landscape orientation, and from the scan / minimize / maximize family,
which use four corner brackets rather than two.

* feat(icons): rename aspect-ratio to square-dimensions

Per review on #4547 (@karsa-mistmere, @ericfennis): the primary shape is
a square, so it takes the square-<x> name, and square-dimensions reads
more naturally for setting width/height than the ratio-specific
aspect-ratio. Retunes tags and use-cases toward size/dimensions.

* Update icons/square-dimensions.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update icons/square-dimensions.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Karsa <contact@karsa.org>
2026-08-18 13:33:59 +02:00
Lazizbek Ergashevgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>Eric Fennis
f9d8161e6a feat(icons): add list-clock icon (#4636)
* feat(icons): add list-clock icon

* feat(icons): apply suggested tags/categories/use-cases for list-clock

* Updated icons/list-clock.svg

* Update icons/list-clock.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update icons/list-clock.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update list-clock.json

* Fix duplicate 'categories' key in JSON

* chore(icons): credit clock glyph contributors on list-clock

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-18 13:30:09 +02:00
20 changed files with 557 additions and 54 deletions
@@ -0,0 +1,50 @@
name: Icon request
description: Suggest a new icon for this project
body:
- type: markdown
attributes:
value: |
Before submitting an icon request check if it has already been requested. If there is an open request, please add a 👍.
> [!CAUTION]
> New brand logos are **not** allowed, see our official statement: https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md.
>
> Existing brand icons have been phased out. Consider using https://simpleicons.org, which offers purpose-built SVGs that are also on a 24×24px grid.
- type: input
id: name
attributes:
label: Icon name
description: What should this icon depict? For multiple icons, provide a comma-separated list.
validations:
required: true
- type: textarea
id: use-cases
attributes:
label: Use cases
description: Why do you need this icon? Include at least two real-life use cases per requested icon, avoiding generic descriptions like "it's a car icon".
placeholder: e.g. I need a star icon to use in my rating system.
validations:
required: true
- type: textarea
id: design-ideas
attributes:
label: Design ideas
description: What should this icon look like? Provide simple, minimalistic icon examples from other sets or your own drafts to help us visualize your request.
validations:
required: true
- type: checkboxes
id: checklist
attributes:
label: Checklist
description: Please review the following checklist before submitting your request.
options:
- label: I have searched if someone has submitted a similar request before and there weren't any.
required: true
- label: I have searched existing icons to make sure it does not already exist and I didn't find any.
required: true
- label: I am not requesting a brand logo and the art is not protected by copyright, see more at https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md
required: true
- label: I am not requesting an icon that includes religious, war/violence related, political imagery or hate symbols.
required: true
- label: I have provided appropriate use cases for the icon(s) requested.
required: true
@@ -3,6 +3,8 @@ name: Close Icon Requests with Brand Terms
on:
issues:
types: [opened]
discussion:
types: [created]
permissions: {}
@@ -16,12 +18,13 @@ jobs:
permissions:
contents: read
issues: write
discussions: write
steps:
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Load stopwords from JSON & check issue title & body
if: contains(github.event.issue.labels.*.name, '🙌 icon request')
if: github.event_name == 'issues' && contains(github.event.issue.labels.*.name, '🙌 icon request')
run: |
ISSUE_TITLE=$(jq -r '.issue.title' "$GITHUB_EVENT_PATH")
ISSUE_BODY=$(jq -r '.issue.body // ""' "$GITHUB_EVENT_PATH")
@@ -34,6 +37,8 @@ jobs:
if echo "$ISSUE_TITLE" | grep -iqE "$SAFE_KEY|$SAFE_VALUE" || \
{ [ -n "$ICON_NAME_SECTION" ] && echo "$ICON_NAME_SECTION" | grep -iqE "$SAFE_KEY|$SAFE_VALUE"; }; then
URL_ENCODED_VALUE=$(jq -rn --arg val "$VALUE" '$val|@uri')
gh issue close ${{ github.event.issue.number }} \
--reason "not planned" \
--comment "It looks like this request is about **${VALUE}**, which is a brand logo.
@@ -42,7 +47,7 @@ jobs:
[Click here to read our official statement about brand logos in Lucide.](https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md)
You can [search for similar issues.](https://github.com/lucide-icons/lucide/issues?q=is%3Aissue+${VALUE})
You can [search for similar issues.](https://github.com/lucide-icons/lucide/issues?q=is%3Aissue+${URL_ENCODED_VALUE})
We’re always happy to help on [Discord](https://discord.gg/EH6nSts)."
@@ -50,3 +55,56 @@ jobs:
exit 0
fi
done
- name: Load stopwords from JSON & check discussion title & body
if: github.event_name == 'discussion' && github.event.discussion.category.slug == 'icon-design'
run: |
DISCUSSION_TITLE=$(jq -r '.discussion.title' "$GITHUB_EVENT_PATH")
DISCUSSION_BODY=$(jq -r '.discussion.body // ""' "$GITHUB_EVENT_PATH")
ICON_NAME_SECTION=$(printf '%s\n' "$DISCUSSION_BODY" | awk '/### Icon name/{flag=1; next} /^### /{flag=0} flag')
jq -r 'to_entries[] | "\(.key) \(.value)"' brand-stopwords.json | while read -r KEY VALUE; do
SAFE_KEY=$(printf '%s\n' "$KEY" | sed 's/[][\.^$*]/\\&/g')
SAFE_VALUE=$(printf '%s\n' "$VALUE" | sed 's/[][\.^$*]/\\&/g')
if echo "$DISCUSSION_TITLE" | grep -iqE "$SAFE_KEY|$SAFE_VALUE" || \
{ [ -n "$ICON_NAME_SECTION" ] && echo "$ICON_NAME_SECTION" | grep -iqE "$SAFE_KEY|$SAFE_VALUE"; }; then
URL_ENCODED_VALUE=$(jq -rn --arg val "$VALUE" '$val|@uri')
DISCUSSION_NODE_ID=$(jq -r '.discussion.node_id' "$GITHUB_EVENT_PATH")
COMMENT_BODY="It looks like this request is about **${VALUE}**, which is a brand logo.
Lucide **does not accept** brand logos, and we do not plan to add them in the future. This is due to a combination of **legal restrictions**, **design consistency concerns**, and **practical maintenance reasons**.
[Click here to read our official statement about brand logos in Lucide.](https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md)
You can [search for similar discussions.](https://github.com/lucide-icons/lucide/discussions/categories/icon-design?discussions_q=category%253A%22Icon+design%22+${URL_ENCODED_VALUE})
We’re always happy to help on [Discord](https://discord.gg/EH6nSts)."
# Add comment to discussion
gh api graphql -f query='
mutation($discussionId: ID!, $body: String!) {
addDiscussionComment(input: {discussionId: $discussionId, body: $body}) {
comment { id }
}
}' -f discussionId="$DISCUSSION_NODE_ID" -f body="$COMMENT_BODY"
# Close discussion
gh api graphql -f query='
mutation($discussionId: ID!) {
closeDiscussion(input: {discussionId: $discussionId}) {
discussion { closed }
}
}' -f discussionId="$DISCUSSION_NODE_ID"
# Lock discussion
gh api graphql -f query='
mutation($lockableId: ID!, $reason: LockReason) {
lockLockable(input: {lockableId: $lockableId, lockReason: $reason}) {
lockedRecord { locked }
}
}' -f lockableId="$DISCUSSION_NODE_ID" -f reason="SPAM"
exit 0
fi
done
@@ -13,11 +13,11 @@ const getIconCodes = (): CodeExampleType => {
title: 'Vanilla',
code: `\
<script>
import { createIcons, $CamelCase } from 'lucide';
import { createIcons, $PascalCase } from 'lucide';
createIcons({
icons: {
$CamelCase
$PascalCase
}
});
</script>
+55
View File
@@ -0,0 +1,55 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley",
"karsa-mistmere"
],
"use-cases": [
"indicating that audio levels, playback, or monitoring are turned off",
"showing muted sound, silenced voice activity, or disabled audio output",
"marking controls that pause waveform visualization or stop live audio analysis",
"representing inactive music, radio, broadcast, or voice signal displays",
"identifying settings that disable sound processing, hearing feedback, or media levels",
"showing a muted microphone during voice or video calls",
"indicating speaker or headphone output is disabled in system audio controls",
"marking disabled waveform or spectrum visualization in audio editors and daws",
"showing that sound notifications or alerts are silenced"
],
"tags": [
"audio",
"sound",
"noise",
"mute",
"silence",
"off",
"disabled",
"inactive",
"listen",
"hearing",
"equalizer",
"equaliser",
"hertz",
"frequency",
"wavelength",
"vibrate",
"sine",
"waveform",
"synthesizer",
"synthesiser",
"levels",
"track",
"music",
"playback",
"radio",
"broadcast",
"airwaves",
"voice",
"vocals",
"singer",
"song"
],
"categories": [
"multimedia",
"communication"
]
}
+21
View File
@@ -0,0 +1,21 @@
<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 10v11" />
<path d="M10 3v1.35" />
<path d="M14 14v1" />
<path d="M14 8v.35" />
<path d="M18 5v7.35" />
<path d="M2 10v3" />
<path d="m2 2 20 20" />
<path d="M22 10v3" />
<path d="M6 6v11" />
</svg>

After

Width:  |  Height:  |  Size: 430 B

+33
View File
@@ -0,0 +1,33 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"karsa-mistmere",
"jamiemlaw",
"kemie"
],
"use-cases": [
"showing the edit or revision history of a list item",
"indicating recently viewed list entries",
"displaying a list of recently changed tasks",
"representing an activity or audit log for list-based content",
"marking last-updated or timestamped list rows"
],
"tags": [
"history",
"log",
"clock",
"time",
"recent",
"updated",
"revision",
"activity",
"timestamp",
"audit",
"list"
],
"categories": [
"text",
"time",
"notifications"
]
}
+17
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="M16 13v2.2l1.6 1" />
<path d="M3 12h3.458" />
<path d="M3 19h3.832" />
<path d="M3 5h18" />
<circle cx="16" cy="15" r="6" />
</svg>

After

Width:  |  Height:  |  Size: 352 B

+37
View File
@@ -0,0 +1,37 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"simoncoudeville",
"karsa-mistmere"
],
"use-cases": [
"Representing MIDI connections and ports in music production software",
"Indicating MIDI input and output on synthesizers, keyboards, and controllers",
"Showing MIDI device connectivity in audio and hardware configuration interfaces",
"Representing MIDI routing, patching, and signal flow",
"Identifying 5-pin DIN MIDI connectors in technical diagrams and device documentation"
],
"tags": [
"musical instrument digital interface",
"port",
"connector",
"socket",
"jack",
"din",
"5-pin",
"audio",
"music",
"synthesizer",
"keyboard",
"controller",
"interface",
"input",
"output",
"io"
],
"categories": [
"multimedia",
"connectivity",
"devices"
]
}
+19
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="M12 18h.01" />
<path d="M15 2.458V5a1 1 0 01-1 1h-4a1 1 0 01-1-1V2.458" />
<path d="M16 16h.01" />
<path d="M18 12h.01" />
<path d="M6 12h.01" />
<path d="M8 16h.01" />
<circle cx="12" cy="12" r="10" />
</svg>

After

Width:  |  Height:  |  Size: 434 B

+38
View File
@@ -0,0 +1,38 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"karsa-mistmere"
],
"use-cases": [
"representing AI-assisted cleaning or automation features",
"indicating spotless or freshly cleaned surfaces",
"showing magical cleanup actions in smart home apps"
],
"tags": [
"cleaning",
"scrubbing",
"sweeping",
"ai",
"magic",
"sparkle",
"smart",
"automation",
"housekeeping",
"hygiene",
"sanitation",
"chores",
"swab",
"tidy",
"floor",
"spotless",
"pristine",
"polish",
"sanitize",
"disinfect"
],
"categories": [
"home",
"tools",
"design"
]
}
+22
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"
>
<path d="M10 22a3 3 0 01-3-3" />
<path d="M10 22c2.761 0 5-1.79 5-4-4.42 0-4.08-5-8.5-5a4.501 4.501 0 000 9z" />
<path d="M10 3H8" />
<path d="M12.5 11.5 22 2" />
<path d="M20 13v4" />
<path d="M22 15h-4" />
<path d="M4 5v4" />
<path d="M6 7H2" />
<path d="m6.98 13.02 2.665-2.664a1.21 1.21 0 011.71 0l2.29 2.288a1.21 1.21 0 010 1.712l-2.088 2.087" />
<path d="M9 2v2" />
</svg>

After

Width:  |  Height:  |  Size: 600 B

+39
View File
@@ -0,0 +1,39 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"karsa-mistmere"
],
"use-cases": [
"representing floor cleaning and housekeeping tasks",
"indicating janitorial or sanitation services",
"showing cleaning supplies in home maintenance apps",
"showing cleaning-in-progress or wet floor warnings",
"representing cleaning supplies in ecommerce listings",
"adding housekeeping requests in hotel apps",
"scheduling recurring floor maintenance tasks",
"labeling janitorial services on property management dashboards"
],
"tags": [
"cleaning",
"sweeping",
"scrubbing",
"housekeeping",
"hygiene",
"sanitation",
"chores",
"swab",
"tidy",
"floor",
"janitor",
"maintenance",
"wash",
"wipe",
"spotless",
"pristine",
"disinfect"
],
"categories": [
"home",
"tools"
]
}
+15
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="M10 22c2.761 0 5-1.79 5-4-4.42 0-4.08-5-8.5-5a1 1 0 100 9za3 3 0 01-3-3" />
<path d="M12.5 11.5 22 2" />
<path d="m6.98 13.02 2.665-2.664a1.21 1.21 0 011.71 0l2.29 2.288a1.21 1.21 0 010 1.712l-2.088 2.087" />
</svg>

After

Width:  |  Height:  |  Size: 432 B

+31
View File
@@ -0,0 +1,31 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"samuelalake"
],
"use-cases": [
"setting or displaying the width and height of a frame or object",
"a size or dimensions control in a design or layout editor",
"indicating fixed-size mode for an element",
"representing artboard or canvas size settings",
"labeling size presets or templates in a design system"
],
"tags": [
"ratio",
"size",
"width",
"height",
"resize",
"scale",
"frame",
"proportions",
"aspect",
"bounds",
"measurements",
"canvas"
],
"categories": [
"design",
"layout"
]
}
+15
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" />
<path d="M12 7H7v5" />
<path d="M12 17h5v-5" />
</svg>

After

Width:  |  Height:  |  Size: 313 B

+32
View File
@@ -0,0 +1,32 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"karsa-mistmere"
],
"use-cases": [
"indicating a USB-C port or connector",
"representing data transfer and device connectivity",
"showing a charging or power delivery interface",
"marking USB-C inputs and outputs on devices"
],
"tags": [
"universal",
"serial",
"bus",
"controller",
"connector",
"interface",
"socket",
"plug",
"slot",
"data",
"input",
"output"
],
"categories": [
"devices",
"multimedia",
"home",
"gaming"
]
}
+14
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="M6 12h12" />
<rect x="2" y="8" width="20" height="8" rx="4" />
</svg>

After

Width:  |  Height:  |  Size: 284 B

+3 -3
View File
@@ -61,14 +61,14 @@
"@lucide/build-icons": "workspace:*",
"@lucide/helpers": "workspace:*",
"@sveltejs/package": "^2.5.8",
"@sveltejs/vite-plugin-svelte": "^7.2.0",
"@sveltejs/vite-plugin-svelte": "^7.3.0",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/svelte": "^5.4.2",
"@tsconfig/svelte": "^5.0.8",
"jest-serializer-html": "^7.1.0",
"jsdom": "^27.4.0",
"svelte": "^5.56.8",
"svelte-check": "^4.7.4",
"svelte": "^5.56.9",
"svelte-check": "^4.7.6",
"svelte-preprocess": "^6.0.5",
"typescript": "^5.9.3",
"vite": "^7.3.6"
+53 -46
View File
@@ -687,16 +687,16 @@ importers:
version: link:../../tools/build-helpers
'@sveltejs/package':
specifier: ^2.5.8
version: 2.5.8(svelte@5.56.8(@typescript-eslint/types@8.64.0))(typescript@5.9.3)
version: 2.5.8(svelte@5.56.9(@typescript-eslint/types@8.66.0))(typescript@5.9.3)
'@sveltejs/vite-plugin-svelte':
specifier: ^7.2.0
version: 7.2.0(svelte@5.56.8(@typescript-eslint/types@8.64.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))
specifier: ^7.3.0
version: 7.3.0(svelte@5.56.9(@typescript-eslint/types@8.66.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))
'@testing-library/jest-dom':
specifier: ^6.9.1
version: 6.9.1
'@testing-library/svelte':
specifier: ^5.4.2
version: 5.4.2(svelte@5.56.8(@typescript-eslint/types@8.64.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))(vitest@4.1.10)
version: 5.4.2(svelte@5.56.9(@typescript-eslint/types@8.66.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))(vitest@4.1.10)
'@tsconfig/svelte':
specifier: ^5.0.8
version: 5.0.8
@@ -707,14 +707,14 @@ importers:
specifier: ^27.4.0
version: 27.4.0(supports-color@10.2.2)
svelte:
specifier: ^5.56.8
version: 5.56.8(@typescript-eslint/types@8.64.0)
specifier: ^5.56.9
version: 5.56.9(@typescript-eslint/types@8.66.0)
svelte-check:
specifier: ^4.7.4
version: 4.7.4(picomatch@4.0.5)(svelte@5.56.8(@typescript-eslint/types@8.64.0))(typescript@5.9.3)
specifier: ^4.7.6
version: 4.7.6(picomatch@4.0.5)(svelte@5.56.9(@typescript-eslint/types@8.66.0))(typescript@5.9.3)
svelte-preprocess:
specifier: ^6.0.5
version: 6.0.5(@babel/core@7.29.7(supports-color@10.2.2))(less@4.6.7)(postcss@8.5.19)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(svelte@5.56.8(@typescript-eslint/types@8.64.0))(typescript@5.9.3)
version: 6.0.5(@babel/core@7.29.7(supports-color@10.2.2))(less@4.6.7)(postcss@8.5.19)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(svelte@5.56.9(@typescript-eslint/types@8.66.0))(typescript@5.9.3)
typescript:
specifier: ^5.9.3
version: 5.9.3
@@ -4596,13 +4596,13 @@ packages:
'@stitches/core@1.2.8':
resolution: {integrity: sha512-Gfkvwk9o9kE9r9XNBmJRfV8zONvXThnm1tcuojL04Uy5uRyqg93DC83lDebl0rocZCfKSjUv+fWYtMQmEDJldg==}
'@sveltejs/acorn-typescript@1.0.11':
resolution: {integrity: sha512-LFuZUkjJ9iF7JZye/aG5XM0SFcQ5VyL0oVX4WJ9dc0Va3R3s0OauX1BESVCb+YN/ol8TAfqGDDAQsTG627Y5kw==}
'@sveltejs/acorn-typescript@1.0.13':
resolution: {integrity: sha512-wgKggnhZVL9Bfx1OaKKTrYY9BFRk6C8UAkQNUcIv1+llzYrIqy+RZm5HPKzn0NpEBvTVhTqB4kQyllZywsRBRQ==}
peerDependencies:
acorn: ^8.9.0
'@sveltejs/load-config@0.2.1':
resolution: {integrity: sha512-5m3B2cbqQ4TbwW6Xkh66Ntw6dD7gNc77cCxABTTesWcq9jxIzMgTk97pZx5vEtvQx8iokgi7GIphqZe+PGwcZA==}
'@sveltejs/load-config@0.2.3':
resolution: {integrity: sha512-VT3qmUb8pRV2QrZjd8iAmtg8lf4W0TIjZbvXtz5MKei/q96teWZgGJyyidJzOjzZzvdq616eSRVeMYIQChUTAQ==}
engines: {node: '>= 18.0.0'}
'@sveltejs/package@2.5.8':
@@ -4612,8 +4612,8 @@ packages:
peerDependencies:
svelte: ^3.44.0 || ^4.0.0 || ^5.0.0-next.1
'@sveltejs/vite-plugin-svelte@7.2.0':
resolution: {integrity: sha512-1SpkuMSRLfugrVX+IrKfE1RUegzo8AQzKQ6qQPfVzbcWi5IhuTPaKb5ZrLpucleFznkc4/RTeSPoRnGWFxX+EQ==}
'@sveltejs/vite-plugin-svelte@7.3.0':
resolution: {integrity: sha512-QbRoJyD92e9R0ufeQIWRHrCC0ObcqSv/aBDdrQMoU+sypav3cDx5wytdQ6GLdXjEMO6xjrXGzfkUygng8JMv0A==}
engines: {node: ^20.19 || ^22.12 || >=24}
peerDependencies:
svelte: ^5.46.4
@@ -6927,8 +6927,8 @@ packages:
resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
engines: {node: '>=0.10'}
esrap@2.3.0:
resolution: {integrity: sha512-GQ/7RN8uOtEfNpzZzBMTzW9JBcX42oaSVtPzdF+6cEL8pqIL094iUpr9jzYGn4O4P/1S60dJ6izyT8F4LYARng==}
esrap@2.3.4:
resolution: {integrity: sha512-CHnJXZDfBeOAjLIGNy/0BEsmDu5+irHgUXRW9pGptxCbO3uyjJ98crilzFgiBqizW94UodjX3GAPLg/dhEnUfA==}
peerDependencies:
'@typescript-eslint/types': ^8.2.0
peerDependenciesMeta:
@@ -8235,6 +8235,9 @@ packages:
magic-string@0.30.21:
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
magic-string@1.2.0:
resolution: {integrity: sha512-ptco+HFxTLgjafSLim2LojBSwfg5feBjd+SqyiwdGkzC38UPdZy3zgrHMI2CoTf5fJL38tbHMYWVzIH8BxGqJw==}
magicast@0.5.3:
resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==}
@@ -10176,8 +10179,8 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
svelte-check@4.7.4:
resolution: {integrity: sha512-IW9ot9YqAoyv8FvyN+eb4ZTe8zgcKZrJLNYU6dzSKkGwEBsSPc4K7lmQ8bKn8W2YMXM6WDfZSSVOaGtekyUfOQ==}
svelte-check@4.7.6:
resolution: {integrity: sha512-t2scM//ZuVbSY/T2w6FSBw1v9s2NEmh/g+sy1lqtosW5ylBV5AF4wFb1Ts9Kf3MbfPDUDJDZ9L436YT0SPTdvw==}
engines: {node: '>= 18.0.0'}
hasBin: true
peerDependencies:
@@ -10227,8 +10230,8 @@ packages:
svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0
typescript: ^4.9.4 || ^5.0.0 || ^6.0.0
svelte@5.56.8:
resolution: {integrity: sha512-PY8LOw7xP6c8IOiVqdo0sbbZVYhXRSfklOQLAUyGBKqjTX0wx/z4l/9J+PmBpmlLnxzEb1NqltxQ5/wZme/Cmg==}
svelte@5.56.9:
resolution: {integrity: sha512-VT8kSnlEg8069w7AiCcAk3Yf5xvMnrGTagVOmU/OpOLHaHnNqXhWZCH/4EVga/bT/HtWhvE6/fHrXLErx7OnJA==}
engines: {node: '>=18'}
svg-path-commander@2.2.1:
@@ -15334,29 +15337,29 @@ snapshots:
'@stitches/core@1.2.8': {}
'@sveltejs/acorn-typescript@1.0.11(acorn@8.18.0)':
'@sveltejs/acorn-typescript@1.0.13(acorn@8.18.0)':
dependencies:
acorn: 8.18.0
'@sveltejs/load-config@0.2.1': {}
'@sveltejs/load-config@0.2.3': {}
'@sveltejs/package@2.5.8(svelte@5.56.8(@typescript-eslint/types@8.64.0))(typescript@5.9.3)':
'@sveltejs/package@2.5.8(svelte@5.56.9(@typescript-eslint/types@8.66.0))(typescript@5.9.3)':
dependencies:
chokidar: 5.0.0
kleur: 4.1.5
sade: 1.8.1
semver: 7.8.5
svelte: 5.56.8(@typescript-eslint/types@8.64.0)
svelte2tsx: 0.7.57(svelte@5.56.8(@typescript-eslint/types@8.64.0))(typescript@5.9.3)
svelte: 5.56.9(@typescript-eslint/types@8.66.0)
svelte2tsx: 0.7.57(svelte@5.56.9(@typescript-eslint/types@8.66.0))(typescript@5.9.3)
transitivePeerDependencies:
- typescript
'@sveltejs/vite-plugin-svelte@7.2.0(svelte@5.56.8(@typescript-eslint/types@8.64.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))':
'@sveltejs/vite-plugin-svelte@7.3.0(svelte@5.56.9(@typescript-eslint/types@8.66.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))':
dependencies:
deepmerge: 4.3.1
magic-string: 0.30.21
magic-string: 1.2.0
obug: 2.1.4
svelte: 5.56.8(@typescript-eslint/types@8.64.0)
svelte: 5.56.9(@typescript-eslint/types@8.66.0)
vite: 7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0)
vitefu: 1.1.3(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))
@@ -15495,15 +15498,15 @@ snapshots:
transitivePeerDependencies:
- '@types/react'
'@testing-library/svelte-core@1.1.3(svelte@5.56.8(@typescript-eslint/types@8.64.0))':
'@testing-library/svelte-core@1.1.3(svelte@5.56.9(@typescript-eslint/types@8.66.0))':
dependencies:
svelte: 5.56.8(@typescript-eslint/types@8.64.0)
svelte: 5.56.9(@typescript-eslint/types@8.66.0)
'@testing-library/svelte@5.4.2(svelte@5.56.8(@typescript-eslint/types@8.64.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))(vitest@4.1.10)':
'@testing-library/svelte@5.4.2(svelte@5.56.9(@typescript-eslint/types@8.66.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))(vitest@4.1.10)':
dependencies:
'@testing-library/dom': 10.4.1
'@testing-library/svelte-core': 1.1.3(svelte@5.56.8(@typescript-eslint/types@8.64.0))
svelte: 5.56.8(@typescript-eslint/types@8.64.0)
'@testing-library/svelte-core': 1.1.3(svelte@5.56.9(@typescript-eslint/types@8.66.0))
svelte: 5.56.9(@typescript-eslint/types@8.66.0)
optionalDependencies:
vite: 7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0)
vitest: 4.1.10(@types/node@26.1.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@vitest/ui@4.1.10)(jsdom@27.4.0(supports-color@10.2.2))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))
@@ -18195,11 +18198,11 @@ snapshots:
dependencies:
estraverse: 5.3.0
esrap@2.3.0(@typescript-eslint/types@8.64.0):
esrap@2.3.4(@typescript-eslint/types@8.66.0):
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
optionalDependencies:
'@typescript-eslint/types': 8.64.0
'@typescript-eslint/types': 8.66.0
esrecurse@4.3.0:
dependencies:
@@ -19684,6 +19687,10 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
magic-string@1.2.0:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
magicast@0.5.3:
dependencies:
'@babel/parser': 7.29.7
@@ -22320,22 +22327,22 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
svelte-check@4.7.4(picomatch@4.0.5)(svelte@5.56.8(@typescript-eslint/types@8.64.0))(typescript@5.9.3):
svelte-check@4.7.6(picomatch@4.0.5)(svelte@5.56.9(@typescript-eslint/types@8.66.0))(typescript@5.9.3):
dependencies:
'@jridgewell/trace-mapping': 0.3.31
'@sveltejs/load-config': 0.2.1
'@sveltejs/load-config': 0.2.3
chokidar: 4.0.3
fdir: 6.5.0(picomatch@4.0.5)
picocolors: 1.1.1
sade: 1.8.1
svelte: 5.56.8(@typescript-eslint/types@8.64.0)
svelte: 5.56.9(@typescript-eslint/types@8.66.0)
typescript: 5.9.3
transitivePeerDependencies:
- picomatch
svelte-preprocess@6.0.5(@babel/core@7.29.7(supports-color@10.2.2))(less@4.6.7)(postcss@8.5.19)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(svelte@5.56.8(@typescript-eslint/types@8.64.0))(typescript@5.9.3):
svelte-preprocess@6.0.5(@babel/core@7.29.7(supports-color@10.2.2))(less@4.6.7)(postcss@8.5.19)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(svelte@5.56.9(@typescript-eslint/types@8.66.0))(typescript@5.9.3):
dependencies:
svelte: 5.56.8(@typescript-eslint/types@8.64.0)
svelte: 5.56.9(@typescript-eslint/types@8.66.0)
optionalDependencies:
'@babel/core': 7.29.7(supports-color@10.2.2)
less: 4.6.7
@@ -22344,18 +22351,18 @@ snapshots:
stylus: 0.56.0(supports-color@10.2.2)
typescript: 5.9.3
svelte2tsx@0.7.57(svelte@5.56.8(@typescript-eslint/types@8.64.0))(typescript@5.9.3):
svelte2tsx@0.7.57(svelte@5.56.9(@typescript-eslint/types@8.66.0))(typescript@5.9.3):
dependencies:
dedent-js: 1.0.1
scule: 1.3.0
svelte: 5.56.8(@typescript-eslint/types@8.64.0)
svelte: 5.56.9(@typescript-eslint/types@8.66.0)
typescript: 5.9.3
svelte@5.56.8(@typescript-eslint/types@8.64.0):
svelte@5.56.9(@typescript-eslint/types@8.66.0):
dependencies:
'@jridgewell/remapping': 2.3.5
'@jridgewell/sourcemap-codec': 1.5.5
'@sveltejs/acorn-typescript': 1.0.11(acorn@8.18.0)
'@sveltejs/acorn-typescript': 1.0.13(acorn@8.18.0)
'@types/estree': 1.0.9
'@types/trusted-types': 2.0.7
acorn: 8.18.0
@@ -22364,7 +22371,7 @@ snapshots:
clsx: 2.1.1
devalue: 5.9.0
esm-env: 1.2.2
esrap: 2.3.0(@typescript-eslint/types@8.64.0)
esrap: 2.3.4(@typescript-eslint/types@8.66.0)
is-reference: 3.0.3
locate-character: 3.0.0
magic-string: 0.30.21
+1 -1
View File
@@ -14,7 +14,7 @@ for (const file of readdirSync(path.join(import.meta.dirname, '../docs/images'))
[
groupOpeningTag,
...readFileSync(path.join(import.meta.dirname, `../icons/${iconName}.svg`), 'utf8')
.replace(/(<svg)([^>]|\n)*>|<\/svg>/g, '')
.replace(/(<svg)[^>]*>|<\/svg>/g, '')
.split('\n'),
]
.map((val) => val.trimEnd())