diff --git a/.github/instructions/metadata.instructions.md b/.github/instructions/metadata.instructions.md index 2829cdb6e..dec4327fb 100644 --- a/.github/instructions/metadata.instructions.md +++ b/.github/instructions/metadata.instructions.md @@ -56,7 +56,7 @@ When checking or adding a `$group:` marker: - A marker must be exactly `"$group:"` followed by the name of an existing file in `groups/`, without the `.json` extension, in lowercase kebab-case. - `$group:` is allowed **only** inside `tags`. It is not valid in `categories` or `contributors`. -- Groups are named after the variant suffix: `file-plus` uses `$group:plus`, `file-question-mark` uses `$group:question-mark`. Suffixes with the same meaning share a group: `mail-warning` uses `$group:exclamation-mark`, and every currency suffix uses `$group:currency`. +- Groups are named after the variant suffix: `file-plus` uses `$group:plus`, `file-question-mark` uses `$group:question-mark`. Suffixes with the same meaning share a group: `mail-exclamation-point` uses `$group:exclamation-mark`, and every currency suffix uses `$group:currency`. - The same suffix can mean different things in different contexts — `-off` means "disabled" on `wifi-off` but "allergy free" on `wheat-off` — so only use the group when the icon carries the group's meaning, and keep context-specific tags as literals. - Do not repeat a tag a group already provides, and do not use the same group twice in one array. - Conventional order: the `$extends:` base icon first, then `$group:` markers, then the icon's own literal tags. diff --git a/categories/notifications.json b/categories/notifications.json index 366c4efbe..2cbbbf6e9 100644 --- a/categories/notifications.json +++ b/categories/notifications.json @@ -2,5 +2,5 @@ "$schema": "../category.schema.json", "title": "Notifications", "description": "Icons for alerts, status updates, reminders, approvals, and attention states.", - "icon": "triangle-alert" + "icon": "triangle-exclamation-point" } diff --git a/docs/.vitepress/theme/components/icons/IconShowcase.vue b/docs/.vitepress/theme/components/icons/IconShowcase.vue index b41d2e9c5..99a03a759 100644 --- a/docs/.vitepress/theme/components/icons/IconShowcase.vue +++ b/docs/.vitepress/theme/components/icons/IconShowcase.vue @@ -6,7 +6,7 @@ import Calendar from '../../../data/iconDetails/calendar.ts'; import Clock from '../../../data/iconDetails/clock.ts'; import Bug from '../../../data/iconDetails/bug.ts'; import Rocket from '../../../data/iconDetails/rocket.ts'; -import TriangleAlert from '../../../data/iconDetails/triangle-alert.ts'; +import TriangleExclamationPoint from '../../../data/iconDetails/triangle-exclamation-point.ts'; import PartyPopper from '../../../data/iconDetails/party-popper.ts'; import Scissors from '../../../data/iconDetails/scissors.ts'; import Copy from '../../../data/iconDetails/copy.ts'; @@ -41,7 +41,7 @@ const CalendarIcon = createLucideIcon('calendar', Calendar.iconNode); const ClockIcon = createLucideIcon('clock', Clock.iconNode); const BugIcon = createLucideIcon('bug', Bug.iconNode); const RocketIcon = createLucideIcon('rocket', Rocket.iconNode); -const AlertTriangleIcon = createLucideIcon('alert-triangle', TriangleAlert.iconNode); +const TriangleExclamationPointIcon = createLucideIcon('triangle-exclamation-point', TriangleExclamationPoint.iconNode); const ScissorsIcon = createLucideIcon('scissors', Scissors.iconNode); const CopyIcon = createLucideIcon('copy', Copy.iconNode); const SaveIcon = createLucideIcon('save', Save.iconNode); @@ -128,7 +128,7 @@ const prettyName = props.name >
- + Alert
diff --git a/docs/contribute/icons/metadata-conventions/use-case-guide.md b/docs/contribute/icons/metadata-conventions/use-case-guide.md index 945a8c9b6..da57a9eed 100644 --- a/docs/contribute/icons/metadata-conventions/use-case-guide.md +++ b/docs/contribute/icons/metadata-conventions/use-case-guide.md @@ -3,7 +3,7 @@ description: Learn the best practices for writing use cases for Lucide icons. --- @@ -120,10 +120,10 @@ The period adds **unnecessary punctuation** and makes entries inconsistent. Use plain text only. Formatting belongs in documentation, not metadata values. :::: example -::: do Warning users about a destructive action +::: do Warning users about a destructive action This works in search, generated pages, and other places that use metadata. ::: -::: dont **Warning** users about a destructive action ⚠️ +::: dont **Warning** users about a destructive action ⚠️ Markdown and emoji can **show up in generated UI** and make metadata **harder to reuse**. ::: :::: diff --git a/docs/guide/angular/advanced/icon-provider.md b/docs/guide/angular/advanced/icon-provider.md index 3f07a9302..adb57430c 100644 --- a/docs/guide/angular/advanced/icon-provider.md +++ b/docs/guide/angular/advanced/icon-provider.md @@ -31,7 +31,7 @@ You can then reference the registered icons by name: ```html [app.html] - + ``` ## How names are resolved diff --git a/icons/badge-alert.json b/icons/badge-exclamation-point.json similarity index 82% rename from icons/badge-alert.json rename to icons/badge-exclamation-point.json index 1a7cb731c..a8d0a235c 100644 --- a/icons/badge-alert.json +++ b/icons/badge-exclamation-point.json @@ -15,5 +15,10 @@ "categories": [ "account", "social" + ], + "aliases": [ + { + "name": "badge-alert" + } ] } diff --git a/icons/badge-alert.svg b/icons/badge-exclamation-point.svg similarity index 100% rename from icons/badge-alert.svg rename to icons/badge-exclamation-point.svg diff --git a/icons/battery-warning.json b/icons/battery-exclamation-point.json similarity index 79% rename from icons/battery-warning.json rename to icons/battery-exclamation-point.json index 2fa57845c..4909ab65b 100644 --- a/icons/battery-warning.json +++ b/icons/battery-exclamation-point.json @@ -12,5 +12,10 @@ ], "categories": [ "$extends:battery" + ], + "aliases": [ + { + "name": "battery-warning" + } ] } diff --git a/icons/battery-warning.svg b/icons/battery-exclamation-point.svg similarity index 100% rename from icons/battery-warning.svg rename to icons/battery-exclamation-point.svg diff --git a/icons/book-alert.json b/icons/book-exclamation-point.json similarity index 83% rename from icons/book-alert.json rename to icons/book-exclamation-point.json index 3d92cb5fd..761349a63 100644 --- a/icons/book-alert.json +++ b/icons/book-exclamation-point.json @@ -15,5 +15,10 @@ ], "categories": [ "$extends:book" + ], + "aliases": [ + { + "name": "book-alert" + } ] } diff --git a/icons/book-alert.svg b/icons/book-exclamation-point.svg similarity index 100% rename from icons/book-alert.svg rename to icons/book-exclamation-point.svg diff --git a/icons/circle-alert.json b/icons/circle-exclamation-point.json similarity index 88% rename from icons/circle-alert.json rename to icons/circle-exclamation-point.json index 0fe8fd404..615ba0226 100644 --- a/icons/circle-alert.json +++ b/icons/circle-exclamation-point.json @@ -16,6 +16,9 @@ "name": "alert-circle", "deprecationReason": "alias.name", "deprecated": true + }, + { + "name": "circle-alert" } ] } diff --git a/icons/circle-alert.svg b/icons/circle-exclamation-point.svg similarity index 100% rename from icons/circle-alert.svg rename to icons/circle-exclamation-point.svg diff --git a/icons/clock-alert.json b/icons/clock-exclamation-point.json similarity index 81% rename from icons/clock-alert.json rename to icons/clock-exclamation-point.json index f6fee97f8..5f5f9dab2 100644 --- a/icons/clock-alert.json +++ b/icons/clock-exclamation-point.json @@ -13,5 +13,10 @@ ], "categories": [ "$extends:clock" + ], + "aliases": [ + { + "name": "clock-alert" + } ] } diff --git a/icons/clock-alert.svg b/icons/clock-exclamation-point.svg similarity index 100% rename from icons/clock-alert.svg rename to icons/clock-exclamation-point.svg diff --git a/icons/cloud-alert.json b/icons/cloud-exclamation-point.json similarity index 85% rename from icons/cloud-alert.json rename to icons/cloud-exclamation-point.json index 8728ad9ec..14a53b870 100644 --- a/icons/cloud-alert.json +++ b/icons/cloud-exclamation-point.json @@ -19,5 +19,10 @@ "development", "notifications", "weather" + ], + "aliases": [ + { + "name": "cloud-alert" + } ] } diff --git a/icons/cloud-alert.svg b/icons/cloud-exclamation-point.svg similarity index 100% rename from icons/cloud-alert.svg rename to icons/cloud-exclamation-point.svg diff --git a/icons/mail-warning.json b/icons/mail-exclamation-point.json similarity index 72% rename from icons/mail-warning.json rename to icons/mail-exclamation-point.json index 31ef7e69f..0075e2f45 100644 --- a/icons/mail-warning.json +++ b/icons/mail-exclamation-point.json @@ -13,5 +13,13 @@ "categories": [ "mail", "notifications" + ], + "aliases": [ + { + "name": "mail-warning" + }, + { + "name": "mail-alert" + } ] } diff --git a/icons/mail-warning.svg b/icons/mail-exclamation-point.svg similarity index 100% rename from icons/mail-warning.svg rename to icons/mail-exclamation-point.svg diff --git a/icons/message-circle-warning.json b/icons/message-circle-exclamation-point.json similarity index 74% rename from icons/message-circle-warning.json rename to icons/message-circle-exclamation-point.json index 035364d6f..6d88b1d04 100644 --- a/icons/message-circle-warning.json +++ b/icons/message-circle-exclamation-point.json @@ -17,5 +17,13 @@ "categories": [ "$extends:message-circle", "notifications" + ], + "aliases": [ + { + "name": "message-circle-warning" + }, + { + "name": "message-circle-alert" + } ] } diff --git a/icons/message-circle-warning.svg b/icons/message-circle-exclamation-point.svg similarity index 100% rename from icons/message-circle-warning.svg rename to icons/message-circle-exclamation-point.svg diff --git a/icons/message-square-warning.json b/icons/message-square-exclamation-point.json similarity index 73% rename from icons/message-square-warning.json rename to icons/message-square-exclamation-point.json index 6a1ed3513..911f99c43 100644 --- a/icons/message-square-warning.json +++ b/icons/message-square-exclamation-point.json @@ -16,5 +16,13 @@ "categories": [ "$extends:message-square", "notifications" + ], + "aliases": [ + { + "name": "message-square-warning" + }, + { + "name": "message-square-alert" + } ] } diff --git a/icons/message-square-warning.svg b/icons/message-square-exclamation-point.svg similarity index 100% rename from icons/message-square-warning.svg rename to icons/message-square-exclamation-point.svg diff --git a/icons/octagon-alert.json b/icons/octagon-exclamation-point.json similarity index 89% rename from icons/octagon-alert.json rename to icons/octagon-exclamation-point.json index 0e351643d..33d0f3087 100644 --- a/icons/octagon-alert.json +++ b/icons/octagon-exclamation-point.json @@ -18,6 +18,9 @@ "name": "alert-octagon", "deprecationReason": "alias.name", "deprecated": true + }, + { + "name": "octagon-alert" } ] } diff --git a/icons/octagon-alert.svg b/icons/octagon-exclamation-point.svg similarity index 100% rename from icons/octagon-alert.svg rename to icons/octagon-exclamation-point.svg diff --git a/icons/search-alert.json b/icons/search-exclamation-point.json similarity index 82% rename from icons/search-alert.json rename to icons/search-exclamation-point.json index 77019382a..65f99e2da 100644 --- a/icons/search-alert.json +++ b/icons/search-exclamation-point.json @@ -15,5 +15,10 @@ ], "categories": [ "$extends:search" + ], + "aliases": [ + { + "name": "search-alert" + } ] } diff --git a/icons/search-alert.svg b/icons/search-exclamation-point.svg similarity index 100% rename from icons/search-alert.svg rename to icons/search-exclamation-point.svg diff --git a/icons/shield-alert.json b/icons/shield-exclamation-point.json similarity index 94% rename from icons/shield-alert.json rename to icons/shield-exclamation-point.json index f98dc1e02..5244628fe 100644 --- a/icons/shield-alert.json +++ b/icons/shield-exclamation-point.json @@ -59,5 +59,10 @@ "development", "notifications", "gaming" + ], + "aliases": [ + { + "name": "shield-alert" + } ] } diff --git a/icons/shield-alert.svg b/icons/shield-exclamation-point.svg similarity index 100% rename from icons/shield-alert.svg rename to icons/shield-exclamation-point.svg diff --git a/icons/triangle-alert.json b/icons/triangle-exclamation-point.json similarity index 90% rename from icons/triangle-alert.json rename to icons/triangle-exclamation-point.json index 8bbd9a390..465dd08cc 100644 --- a/icons/triangle-alert.json +++ b/icons/triangle-exclamation-point.json @@ -21,6 +21,9 @@ "name": "alert-triangle", "deprecationReason": "alias.name", "deprecated": true + }, + { + "name": "triangle-alert" } ] } diff --git a/icons/triangle-alert.svg b/icons/triangle-exclamation-point.svg similarity index 100% rename from icons/triangle-alert.svg rename to icons/triangle-exclamation-point.svg diff --git a/packages/angular/src/lucide-hydration.spec.ts b/packages/angular/src/lucide-hydration.spec.ts index 9b4757c85..77423f812 100644 --- a/packages/angular/src/lucide-hydration.spec.ts +++ b/packages/angular/src/lucide-hydration.spec.ts @@ -3,20 +3,20 @@ import { bootstrapApplication, provideClientHydration } from '@angular/platform- import { provideServerRendering, renderApplication } from '@angular/platform-server'; import { LucideDynamicIcon } from './lucide-dynamic-icon'; import { provideLucideIcons } from './lucide-icons'; -import { LucideBadgeAlert } from './icons/badge-alert'; +import { LucideBadgeExclamationPoint } from './icons/badge-exclamation-point'; @Component({ // eslint-disable-next-line @angular-eslint/component-selector selector: 'lucide-static-hydration-root', - template: ``, - imports: [LucideBadgeAlert], + template: ``, + imports: [LucideBadgeExclamationPoint], }) class StaticHydrationRootComponent {} @Component({ // eslint-disable-next-line @angular-eslint/component-selector selector: 'lucide-dynamic-hydration-root', - template: ``, + template: ``, imports: [LucideDynamicIcon], }) class DynamicHydrationRootComponent {} @@ -60,7 +60,7 @@ describe('Lucide hydration', () => { ); (globalThis as { ngServerMode?: boolean }).ngServerMode = false; const serverDocument = new DOMParser().parseFromString(html, 'text/html'); - expectBadgeAlertShapeNodes(serverDocument.querySelector('svg') as SVGSVGElement); + expectBadgeExclamationPointShapeNodes(serverDocument.querySelector('svg') as SVGSVGElement); document.head.innerHTML = serverDocument.head.innerHTML; document.body.innerHTML = serverDocument.body.innerHTML; @@ -75,7 +75,7 @@ describe('Lucide hydration', () => { return document.querySelector('svg') as SVGSVGElement; } - function expectBadgeAlertShapeNodes(svg: SVGSVGElement) { + function expectBadgeExclamationPointShapeNodes(svg: SVGSVGElement) { expect(Array.from(svg.children).map((child) => child.tagName.toLowerCase())).toEqual([ 'path', 'line', @@ -89,7 +89,7 @@ describe('Lucide hydration', () => { 'lucide-static-hydration-root', ); - expectBadgeAlertShapeNodes(svg); + expectBadgeExclamationPointShapeNodes(svg); for (const child of Array.from(svg.children)) { expect(child.getAttribute('vector-effect')).toBe('non-scaling-stroke'); } @@ -99,9 +99,9 @@ describe('Lucide hydration', () => { const svg = await renderAndHydrate( DynamicHydrationRootComponent, 'lucide-dynamic-hydration-root', - [provideLucideIcons(LucideBadgeAlert)], + [provideLucideIcons(LucideBadgeExclamationPoint)], ); - expectBadgeAlertShapeNodes(svg); + expectBadgeExclamationPointShapeNodes(svg); }); }); diff --git a/scripts/rename/renameIcon.function.mts b/scripts/rename/renameIcon.function.mts index 07be27a6f..c35fe79c4 100644 --- a/scripts/rename/renameIcon.function.mts +++ b/scripts/rename/renameIcon.function.mts @@ -1,7 +1,7 @@ import path from 'path'; import fs from 'fs'; import { promisify } from 'util'; -import simpleGit from 'simple-git'; +import { simpleGit } from 'simple-git'; import { type IconMetadata } from '../../tools/build-icons/types.ts'; /**