mirror of
https://github.com/lucide-icons/lucide.git
synced 2026-11-10 13:18:25 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b826f0c527 | ||
|
|
558bdd83b5 | ||
|
|
a805955781 | ||
|
|
ee8e10d746 | ||
|
|
2c2ee80687 | ||
|
|
1c93e0a476 |
+62
-7
@@ -12,8 +12,68 @@
|
||||
"permanent": true
|
||||
},
|
||||
{
|
||||
"source": "/docs/:slug(lucide-?.*)",
|
||||
"destination": "/guide/:slug",
|
||||
"source": "/docs/lucide-vue-next",
|
||||
"destination": "/guide/vue",
|
||||
"permanent": true
|
||||
},
|
||||
{
|
||||
"source": "/guide/packages/lucide-vue-next",
|
||||
"destination": "/guide/vue",
|
||||
"permanent": true
|
||||
},
|
||||
{
|
||||
"source": "/guide/vue-next",
|
||||
"destination": "/guide/vue",
|
||||
"permanent": true
|
||||
},
|
||||
{
|
||||
"source": "/docs/lucide",
|
||||
"destination": "/guide/lucide",
|
||||
"permanent": true
|
||||
},
|
||||
{
|
||||
"source": "/docs/lucide-:pkg",
|
||||
"destination": "/guide/:pkg",
|
||||
"permanent": true
|
||||
},
|
||||
{
|
||||
"source": "/guide/lucide-:pkg",
|
||||
"destination": "/guide/:pkg",
|
||||
"permanent": true
|
||||
},
|
||||
{
|
||||
"source": "/guide/packages/lucide-:pkg/",
|
||||
"destination": "/guide/:pkg",
|
||||
"permanent": true
|
||||
},
|
||||
{
|
||||
"source": "/guide/advanced/accessibility",
|
||||
"destination": "/how-to/accessibility",
|
||||
"permanent": true
|
||||
},
|
||||
{
|
||||
"source": "/guide/basics/:slug",
|
||||
"destination": "/guide/react/basics/:slug",
|
||||
"permanent": true
|
||||
},
|
||||
{
|
||||
"source": "/guide/advanced/:slug",
|
||||
"destination": "/guide/react/advanced/:slug",
|
||||
"permanent": true
|
||||
},
|
||||
{
|
||||
"source": "/guide/design/figma-guide",
|
||||
"destination": "/contribute/icons/figma-guide",
|
||||
"permanent": true
|
||||
},
|
||||
{
|
||||
"source": "/guide/design/:slug(icon-design-guide|icon-properties)",
|
||||
"destination": "/contribute/icons/design-principles",
|
||||
"permanent": true
|
||||
},
|
||||
{
|
||||
"source": "/icons/lab/:name(carton-off|briefcase-plus)",
|
||||
"destination": "/icons/:name",
|
||||
"permanent": true
|
||||
},
|
||||
{
|
||||
@@ -47,11 +107,6 @@
|
||||
"destination": "/how-to/accessibility",
|
||||
"permanent": true
|
||||
},
|
||||
{
|
||||
"source": "/guide/advanced/accessibility",
|
||||
"destination": "/how-to/accessibility",
|
||||
"permanent": true
|
||||
},
|
||||
{
|
||||
"source": "/guide/advanced",
|
||||
"destination": "/guide/react/advanced",
|
||||
|
||||
+3
-1
@@ -20,6 +20,8 @@
|
||||
"investigate",
|
||||
"magnifying glass",
|
||||
"lens",
|
||||
"zoom"
|
||||
"zoom",
|
||||
"inspection",
|
||||
"visual search"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"$extends:grid-3x3",
|
||||
"gridalchemy"
|
||||
],
|
||||
"use-cases": [
|
||||
"Hiding grid lines on a canvas or artboard",
|
||||
"Indicating that snap to grid is turned off",
|
||||
"Hiding the cell grid in spreadsheets"
|
||||
],
|
||||
"tags": [
|
||||
"$extends:grid-3x3",
|
||||
"$group:off",
|
||||
"guides",
|
||||
"snap",
|
||||
"canvas",
|
||||
"spreadsheet",
|
||||
"cells",
|
||||
"data table",
|
||||
"diagram",
|
||||
"overlay"
|
||||
],
|
||||
"categories": [
|
||||
"$extends:grid-3x3"
|
||||
]
|
||||
}
|
||||
@@ -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="M15 9.344V3" />
|
||||
<path d="m2 2 20 20" />
|
||||
<path d="M20.414 20.414A2 2 0 0119 21H5a2 2 0 01-2-2V5a2 2 0 01.586-1.414" />
|
||||
<path d="M20.656 15H21" />
|
||||
<path d="M21 9h-6.344" />
|
||||
<path d="M3 15h12v6" />
|
||||
<path d="M3 9h6v12" />
|
||||
<path d="M8.656 3H19a2 2 0 012 2v10.343" />
|
||||
<path d="M9 3v.344" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 520 B |
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"jamiemlaw",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [
|
||||
"Picking a transport type in journey planning or racing apps",
|
||||
"Highlighting a delivery driver on a map when they ride a motorbike"
|
||||
],
|
||||
"tags": [
|
||||
"scooter",
|
||||
"two-wheeler",
|
||||
"commute",
|
||||
"urban",
|
||||
"city",
|
||||
"courier",
|
||||
"motorbike",
|
||||
"moto",
|
||||
"motorcycle",
|
||||
"transport",
|
||||
"vehicle",
|
||||
"drive",
|
||||
"ride",
|
||||
"race",
|
||||
"racing",
|
||||
"trip",
|
||||
"journey",
|
||||
"delivery",
|
||||
"off-road",
|
||||
"dirt bike",
|
||||
"trail",
|
||||
"enduro"
|
||||
],
|
||||
"categories": [
|
||||
"transportation"
|
||||
]
|
||||
}
|
||||
@@ -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="m18.16 14.12-2.927-8.447A1 1 0 0 0 14.288 5H13" />
|
||||
<path d="M19 10a7 7 0 0 0-6.928 6" />
|
||||
<path d="M2 10h5.5a3 3 0 0 1 2.747 1.795l1.669 3.803A1 1 0 0 1 11.01 17H8" />
|
||||
<circle cx="19" cy="17" r="3" />
|
||||
<circle cx="5" cy="17" r="3" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 459 B |
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"$extends:square-dashed",
|
||||
"domarku"
|
||||
],
|
||||
"use-cases": [
|
||||
"Searching within a selected region",
|
||||
"Finding content inside a placeholder area",
|
||||
"Scanning a marquee selection",
|
||||
"Zooming a selected region"
|
||||
],
|
||||
"tags": [
|
||||
"$extends:square-dashed",
|
||||
"$group:search"
|
||||
],
|
||||
"categories": [
|
||||
"$extends:square-dashed"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<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 3h1" />
|
||||
<path d="M19 3a2 2 0 012 2" />
|
||||
<path d="m21 21-1.875-1.875" />
|
||||
<path d="M21 9v1" />
|
||||
<path d="M3 14v1" />
|
||||
<path d="M3 9v1" />
|
||||
<path d="M5 21a2 2 0 01-2-2" />
|
||||
<path d="M5 3a2 2 0 00-2 2" />
|
||||
<path d="M9 21h1" />
|
||||
<path d="M9 3h1" />
|
||||
<circle cx="17" cy="17" r="3" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 513 B |
@@ -15,7 +15,10 @@
|
||||
"marquee",
|
||||
"tool",
|
||||
"dashed",
|
||||
"box"
|
||||
"box",
|
||||
"region",
|
||||
"area",
|
||||
"region of interest"
|
||||
],
|
||||
"categories": [
|
||||
"design",
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"$extends:user"
|
||||
],
|
||||
"use-cases": [
|
||||
"Flagging an account as suspicious in moderation tools",
|
||||
"Indicating a problem with a user's account or profile",
|
||||
"Showing that a user has received a warning",
|
||||
"Issuing a warning to a member in community management"
|
||||
],
|
||||
"tags": [
|
||||
"$extends:user",
|
||||
"$group:exclamation-mark",
|
||||
"flagged",
|
||||
"suspicious",
|
||||
"reported",
|
||||
"violation",
|
||||
"moderation",
|
||||
"account issue",
|
||||
"review"
|
||||
],
|
||||
"categories": [
|
||||
"$extends:user"
|
||||
]
|
||||
}
|
||||
@@ -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="M15 15H9a4 4 0 00-4 4v2" />
|
||||
<path d="M18.988 13v4" />
|
||||
<path d="M18.988 21h.01" />
|
||||
<circle cx="12" cy="7" r="4" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 339 B |
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"$extends:user-round"
|
||||
],
|
||||
"use-cases": [
|
||||
"$extends:user-exclamation-point"
|
||||
],
|
||||
"tags": [
|
||||
"$extends:user-round",
|
||||
"$extends:user-exclamation-point"
|
||||
],
|
||||
"categories": [
|
||||
"$extends:user-round"
|
||||
]
|
||||
}
|
||||
@@ -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="M19.99 13v4" />
|
||||
<path d="M19.99 21H20" />
|
||||
<path d="M4 21a8 8 0 0111.99-6.934" />
|
||||
<circle cx="12" cy="8" r="5" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 338 B |
@@ -55,11 +55,12 @@
|
||||
"dist"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "pnpm clean && pnpm copy:license && pnpm build:icons && pnpm build:bundles",
|
||||
"build": "pnpm clean && pnpm copy:license && pnpm build:icons && pnpm build:bundles && pnpm check:icon-subpaths",
|
||||
"copy:license": "cp ../../LICENSE ./LICENSE",
|
||||
"clean": "rm -rf dist && rm -rf stats && rm -rf ./src/icons/*.ts",
|
||||
"build:icons": "build-icons --output=./src --templateSrc=./scripts/exportTemplate.mts --renderUniqueKey --iconFileExtension=.ts --exportFileName=index.ts --withAliases --separateAliasesFile --separateAliasesFileIgnore=fingerprint --aliasesFileExtension=.ts",
|
||||
"build:bundles": "rollup -c ./rollup.config.mjs",
|
||||
"check:icon-subpaths": "node ./scripts/checkIconSubpaths.mts",
|
||||
"test": "pnpm build:icons && vitest run",
|
||||
"test:watch": "vitest watch",
|
||||
"typecheck": "pnpm build:icons && tsc"
|
||||
|
||||
@@ -11,7 +11,14 @@ const dtsOptions = {
|
||||
const packageName = 'LucideReact';
|
||||
const outputFileName = 'lucide-react-native';
|
||||
const outputDir = 'dist';
|
||||
const inputs = ['src/lucide-react-native.ts', 'src/icons/index.ts'];
|
||||
const iconAndAliasEntries = await getIconEntryNamesAndAliases();
|
||||
// Alias modules (e.g. `icons/trash-2`) aren't imported by the index, so list them as entries
|
||||
// to emit the runtime files the `./icons/*` export map points at.
|
||||
const inputs = [
|
||||
'src/lucide-react-native.ts',
|
||||
'src/icons/index.ts',
|
||||
...Object.values(iconAndAliasEntries),
|
||||
];
|
||||
const bundles = [
|
||||
{
|
||||
format: 'cjs',
|
||||
@@ -28,7 +35,6 @@ const bundles = [
|
||||
},
|
||||
];
|
||||
|
||||
const iconAndAliasEntries = await getIconEntryNamesAndAliases();
|
||||
const typesModuleMatcher = /[/\\]src[/\\]types\.(d\.)?ts$/;
|
||||
|
||||
const configs = bundles.map(({ inputs, outputDir, format, preserveModules, extension = 'js' }) => ({
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
// Fails the build when an `icons/*` subpath has type declarations but no runtime file.
|
||||
import { existsSync, readdirSync } from 'node:fs';
|
||||
|
||||
const declarations = readdirSync('dist/types/icons').filter((file) => file.endsWith('.d.ts'));
|
||||
|
||||
const missing = declarations.flatMap((file) => {
|
||||
const name = file.replace(/\.d\.ts$/, '');
|
||||
return [`dist/esm/icons/${name}.mjs`, `dist/cjs/icons/${name}.js`].filter(
|
||||
(runtimeFile) => !existsSync(runtimeFile),
|
||||
);
|
||||
});
|
||||
|
||||
if (missing.length > 0) {
|
||||
console.error(`Missing runtime files for icon subpaths:\n${missing.join('\n')}`);
|
||||
process.exit(1);
|
||||
}
|
||||
Reference in New Issue
Block a user