Compare commits

..

2 Commits

Author SHA1 Message Date
Eric Fennis
9367257347 Merge branch 'main' into icon/peanut 2024-09-06 10:04:59 +02:00
Karsa
d1c00e36e6 feat(icons): add peanut icons 2024-07-29 13:19:58 +02:00
31 changed files with 106 additions and 303 deletions

View File

@@ -1,35 +0,0 @@
name: Close Issue with Banned Phrases
on:
issues:
types: [opened]
jobs:
block_phrases:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Check for blocked phrases in issue title
run: |
ISSUE_TITLE=$(jq -r '.issue.title' "$GITHUB_EVENT_PATH")
BLOCKED_PHRASES=("twitter" "whatsapp" "logo" "google" "tiktok" "facebook" "slack" "discord")
# Check title and body for blocked phrases
for PHRASE in "${BLOCKED_PHRASES[@]}"
do
if echo "$ISSUE_TITLE" | grep -i "$PHRASE"; then
gh issue close ${{ github.event.issue.number }} --reason "not planned" --comment "This looks like a duplicate, use the [search](https://github.com/lucide-icons/lucide/issues?q=is%3Aissue+$PHRASE) to find similar issues.
Read more about brand guideline rules at [We're not accepting new Brand icons #670](https://github.com/lucide-icons/lucide/issues/670).
Always happy to help on [Discord](https://discord.gg/EH6nSts)."
gh issue lock ${{ github.event.issue.number }} --reason spam
exit 1
fi
done
env:
GH_TOKEN: ${{ github.token }}

View File

@@ -28,7 +28,7 @@ However, not everyone can understand them easily. Read more about [how to use Lu
## Official Packages
Lucide's official packages are designed to work on different platforms, making it easier for users to integrate icons into their projects. The packages are available for various technologies, including [Web (Vanilla)](https://lucide.dev/guide/packages/lucide), [React](https://lucide.dev/guide/packages/lucide-react), [React Native](https://lucide.dev/guide/packages/lucide-react-native), [Vue](https://lucide.dev/guide/packages/lucide-vue), [Vue 3](https://lucide.dev/guide/packages/lucide-vue-next), [Svelte](https://lucide.dev/guide/packages/lucide-svelte), [Preact](https://lucide.dev/guide/packages/lucide-preact), [Solid](https://lucide.dev/guide/packages/lucide-solid), [Angular](https://lucide.dev/guide/packages/lucide-angular), [NodeJS](https://lucide.dev/guide/packages/lucide-static#nodejs) and [Flutter](https://lucide.dev/guide/packages/lucide-flutter).
Lucide's official packages are designed to work on different platforms, making it easier for users to integrate icons into their projects. The packages are available for various technologies, including [Web (Vanilla)](https://lucide.dev/guide/packages/lucide), [React](https://lucide.dev/guide/packages/lucide-react), [React Native](https://lucide.dev/guide/packages/lucide-react-native), [Vue](https://lucide.dev/guide/packages/lucide-vue), [Vue 3](https://lucide.dev/guide/packages/lucide-vue-next), [Svelte](https://lucide.dev/guide/packages/lucide-svelte),[Preact](https://lucide.dev/guide/packages/lucide-preact), [Solid](https://lucide.dev/guide/packages/lucide-solid), [Angular](https://lucide.dev/guide/packages/lucide-angular), [NodeJS](https://lucide.dev/guide/packages/lucide-static#nodejs) and [Flutter](https://lucide.dev/guide/packages/lucide-flutter).
## Community
If you have any questions about Lucide, feel free to reach out to the community. You can find them on [GitHub](https://github.com/lucide-icons/lucide) and [Discord](https://discord.gg/EH6nSts).

View File

@@ -1,19 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"karsa-mistmere",
"jguddas"
],
"tags": [
"baggage",
"luggage",
"travel",
"suitcase",
"conveyor",
"carousel"
],
"categories": [
"travel",
"transportation"
]
}

View File

@@ -1,19 +0,0 @@
<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 20v2" />
<path d="M14 20v2" />
<path d="M18 20v2" />
<path d="M21 20H3" />
<path d="M6 20v2" />
<path d="M8 16V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v12" />
<rect x="4" y="6" width="16" height="10" rx="2" />
</svg>

Before

Width:  |  Height:  |  Size: 436 B

View File

@@ -1,8 +1,7 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley",
"jguddas"
"danielbayley"
],
"tags": [
"trailer",

View File

@@ -9,8 +9,9 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="4" height="4" x="2" y="9" />
<rect width="4" height="10" x="10" y="9" />
<path d="M18 19V9a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v8a2 2 0 0 0 2 2h2" />
<path d="M2 9h3a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H2" />
<path d="M22 17v1a1 1 0 0 1-1 1H10v-9a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v9" />
<circle cx="8" cy="19" r="2" />
<path d="M10 19h12v-2" />
</svg>

Before

Width:  |  Height:  |  Size: 444 B

After

Width:  |  Height:  |  Size: 432 B

View File

@@ -10,5 +10,5 @@
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<rect x="9" y="9" width="6" height="6" rx="1" />
<rect width="6" height="6" x="9" y="9" />
</svg>

Before

Width:  |  Height:  |  Size: 295 B

After

Width:  |  Height:  |  Size: 288 B

View File

@@ -1,17 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"colebemis",
"jguddas"
],
"tags": [
"time",
"watch",
"alarm",
"warning",
"wrong"
],
"categories": [
"time"
]
}

View File

@@ -1,16 +0,0 @@
<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 6v6l4 2" />
<path d="M16 21.16a10 10 0 1 1 5-13.516" />
<path d="M20 11.5v6" />
<path d="M20 21.5h.01" />
</svg>

Before

Width:  |  Height:  |  Size: 335 B

View File

@@ -1,28 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley",
"colebemis",
"ericfennis",
"jguddas"
],
"tags": [
"person",
"personal information",
"people",
"listing",
"networking",
"document",
"contact",
"cover letter",
"resume",
"cv",
"curriculum vitae",
"application form"
],
"categories": [
"account",
"communication",
"files"
]
}

View File

@@ -1,16 +0,0 @@
<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="M14 2v4a2 2 0 0 0 2 2h4" />
<path d="M15 18a3 3 0 1 0-6 0" />
<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z" />
<circle cx="12" cy="13" r="2" />
</svg>

Before

Width:  |  Height:  |  Size: 392 B

View File

@@ -1,24 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"colebemis",
"csandman",
"ericfennis",
"jguddas",
"Need-an-AwP"
],
"tags": [
"music",
"audio",
"sound",
"mute",
"off"
],
"categories": [
"multimedia",
"connectivity",
"communication",
"devices",
"gaming"
]
}

View File

@@ -1,17 +0,0 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M21 14h-1.343" />
<path d="M9.128 3.47A9 9 0 0 1 21 12v3.343" />
<path d="m2 2 20 20" />
<path d="M20.414 20.414A2 2 0 0 1 19 21h-1a2 2 0 0 1-2-2v-3" />
<path d="M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 2.636-6.364" />
</svg>

Before

Width:  |  Height:  |  Size: 472 B

View File

@@ -1,8 +1,7 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley",
"jguddas"
"danielbayley"
],
"tags": [
"loading",

View File

@@ -9,7 +9,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M22 12a1 1 0 0 1-10 0 1 1 0 0 0-10 0" />
<path d="M2 12c0-2.8 2.2-5 5-5s5 2.2 5 5 2.2 5 5 5 5-2.2 5-5" />
<path d="M7 20.7a1 1 0 1 1 5-8.7 1 1 0 1 0 5-8.6" />
<path d="M7 3.3a1 1 0 1 1 5 8.6 1 1 0 1 0 5 8.6" />
<circle cx="12" cy="12" r="10" />

Before

Width:  |  Height:  |  Size: 405 B

After

Width:  |  Height:  |  Size: 420 B

View File

@@ -1,23 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"colebemis",
"csandman",
"ericfennis",
"jguddas"
],
"tags": [
"comment",
"chat",
"conversation",
"dialog",
"feedback",
"speech bubble",
"secure",
"encrypted"
],
"categories": [
"account",
"social"
]
}

View File

@@ -1,15 +0,0 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M19 15v-2a2 2 0 1 0-4 0v2" />
<path d="M9 17H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v3.5" />
<rect x="13" y="15" width="8" height="5" rx="1" />
</svg>

Before

Width:  |  Height:  |  Size: 367 B

View File

@@ -9,6 +9,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z" />
<path d="M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2z" />
<path d="M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1" />
</svg>

Before

Width:  |  Height:  |  Size: 348 B

After

Width:  |  Height:  |  Size: 348 B

View File

@@ -1,8 +1,7 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"mittalyashu",
"jguddas"
"mittalyashu"
],
"tags": [
"music",

View File

@@ -11,5 +11,5 @@
>
<path d="M10 15V9" />
<path d="M14 15V9" />
<path d="M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z" />
<path d="M2.586 16.872A2 2 0 0 1 2 15.458V8.542a2 2 0 0 1 .586-1.414l4.542-4.542A2 2 0 0 1 8.542 2h6.916a2 2 0 0 1 1.414.586l4.542 4.542A2 2 0 0 1 22 8.542v6.916a2 2 0 0 1-.586 1.414l-4.542 4.542a2 2 0 0 1-1.414.586H8.542a2 2 0 0 1-1.414-.586z" />
</svg>

Before

Width:  |  Height:  |  Size: 506 B

After

Width:  |  Height:  |  Size: 506 B

26
icons/peanut-off.json Normal file
View File

@@ -0,0 +1,26 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"karsa-mistmere"
],
"tags": [
"food",
"diet",
"allergy",
"allergen",
"intolerance",
"legume",
"nut",
"snack",
"protein",
"shell",
"plant",
"healthy",
"natural",
"vegan",
"vegetarian"
],
"categories": [
"food-beverage"
]
}

20
icons/peanut-off.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="M11.316 5.659a5.502 5.502 0 1 1 7.025 7.025" />
<path d="M11.456 5.304a10 10 0 0 1 7.24 7.24" />
<path d="M12.544 18.696a10 10 0 0 1-7.24-7.24" />
<path d="M12.925 17.41a5.502 5.502 0 1 1-6.363-6.33 5.69 5.69 0 0 0 2.951-1.567" />
<path d="M12.925 17.443a5.66 5.66 0 0 1 1.563-2.955" />
<path d="m2 2 20 20" />
<path d="m20.389 3.61-5.56 5.562" />
<path d="M3.61 20.39 12 12" />
</svg>

After

Width:  |  Height:  |  Size: 612 B

25
icons/peanut.json Normal file
View File

@@ -0,0 +1,25 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"karsa-mistmere"
],
"tags": [
"food",
"diet",
"allergy",
"allergen",
"legume",
"nut",
"snack",
"protein",
"shell",
"plant",
"healthy",
"natural",
"vegan",
"vegetarian"
],
"categories": [
"food-beverage"
]
}

18
icons/peanut.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="M11.08 6.562a5.502 5.502 0 1 1 6.363 6.358 5.693 5.693 0 0 0-4.518 4.523" />
<path d="M11.456 5.304a10 10 0 0 1 7.24 7.24" />
<path d="M12.544 18.696a10 10 0 0 1-7.24-7.24" />
<path d="M12.925 17.41a5.502 5.502 0 1 1-6.363-6.33 5.689 5.689 0 0 0 4.518-4.534" />
<path d="M3.61 20.39 20.39 3.61" />
<path d="m9.513 9.513 4.975 4.975" />
</svg>

After

Width:  |  Height:  |  Size: 565 B

View File

@@ -75,8 +75,5 @@
}
}
}
},
"dependencies": {
"c12": "^1.11.2"
}
}

View File

@@ -1,12 +0,0 @@
import { BuildConfig } from '@lucide/build-icons/types/config'
export default {
output: './src ',
templateSrc: './scripts/exportTemplate.mjs',
iconFileExtension: '.ts',
aliases: {
exportNamesOnly: true,
fileExtension: '.ts',
},
indexFileName: 'index.ts'
} satisfies BuildConfig;

29
pnpm-lock.yaml generated
View File

@@ -9,10 +9,6 @@ packageExtensionsChecksum: ec9ef8c1f59f2012c5f48437186d43d8
importers:
.:
dependencies:
c12:
specifier: ^1.11.2
version: 1.11.2
devDependencies:
'@html-eslint/eslint-plugin':
specifier: ^0.19.1
@@ -5305,14 +5301,6 @@ packages:
magicast:
optional: true
c12@1.11.2:
resolution: {integrity: sha512-oBs8a4uvSDO9dm8b7OCFW7+dgtVrwmwnrVXYzLm43ta7ep2jCn/0MhoUFygIWtxhyy6+/MG7/agvpY0U1Iemew==}
peerDependencies:
magicast: ^0.3.4
peerDependenciesMeta:
magicast:
optional: true
cac@6.7.14:
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
engines: {node: '>=8'}
@@ -18367,21 +18355,6 @@ snapshots:
pkg-types: 1.2.0
rc9: 2.1.2
c12@1.11.2:
dependencies:
chokidar: 3.6.0
confbox: 0.1.7
defu: 6.1.4
dotenv: 16.4.5
giget: 1.2.3
jiti: 1.21.6
mlly: 1.7.1
ohash: 1.1.3
pathe: 1.1.2
perfect-debounce: 1.0.0
pkg-types: 1.2.0
rc9: 2.1.2
cac@6.7.14: {}
cacache@15.3.0:
@@ -21823,7 +21796,7 @@ snapshots:
local-pkg@0.5.0:
dependencies:
mlly: 1.7.1
pkg-types: 1.2.0
pkg-types: 1.0.3
locate-character@3.0.0: {}

View File

@@ -82,7 +82,7 @@ const changeFilesDiffImageTags = getImageTagsByFiles(
(file) => {
const iconName = path.basename(file, '.svg');
return `${BASE_URL}/diff/${iconName}`;
return `${BASE_URL}/${iconName}`;
},
400,
).join(' ');
@@ -122,7 +122,6 @@ ${changeFilesLowDPIImageTags}<br/>
<summary>Icon X-rays</summary>
${changeFilesXRayImageTags}
</details>
<details>
<summary>Icon Diffs</summary>
${changeFilesDiffImageTags}
</details>

View File

@@ -3,13 +3,13 @@ import path from 'path';
// eslint-disable-next-line import/no-extraneous-dependencies
import { toPascalCase, toCamelCase, resetFile, appendFile } from '@lucide/helpers';
export default function generateIndexFile (
export default (
inputEntry,
outputDirectory,
iconNodes,
exportModuleNameCasing,
iconFileExtension = '',
) {
) => {
const fileName = path.basename(inputEntry);
// Reset file

View File

@@ -6,7 +6,7 @@ import getArgumentOptions from 'minimist';
import { readSvgDirectory } from '@lucide/helpers';
import renderIconsObject from './render/renderIconsObject.mjs';
import generateIconFiles from './building/generateIconFiles.mjs';
import generateIndexFile from './building/generateIndexFile.mjs';
import generateExportsFile from './building/generateExportsFile.mjs';
import generateAliasesFile from './building/generateAliasesFile.mjs';
// eslint-disable-next-line import/no-named-as-default, import/no-named-as-default-member
@@ -89,7 +89,7 @@ async function buildIcons() {
}
// Generates entry files for the compiler filled with icons exports
generateIndexFile(
generateExportsFile(
path.join(OUTPUT_DIR, 'icons', exportFileName),
path.join(OUTPUT_DIR, 'icons'),
icons,

View File

@@ -1,12 +0,0 @@
interface AliasConfig {
exportNamesOnly: boolean,
fileExtension: string
}
export interface BuildConfig {
output: string
templateSrc: string
iconFileExtension?: string
aliases?: AliasConfig | boolean
indexFileName?: string
}