mirror of
https://github.com/lucide-icons/lucide.git
synced 2026-11-11 13:28:19 +00:00
* feat(icons): add deprecationReason and alias deprecation feature * chore(tools): run prettier. again. * fix(scripts): overall alias as object support * fix(icon.schema.json): add dependentRequired on deprecated properties * fix(icon.schema.json): remove unicode for now * fix(icon.schema.json): use const true for deprecated * fix(build): convert deprecation reason to enum * fix(build): fix linting of icon.schema.json * fix(build): renamed gracePeriod => toBeRemovedInVersion * fix(build): fix aliases map in related icons generation * fix(build): deprecate aliases using numbers * feat(icon-schema): separate deprecation reason enumerations, extract removal notice * fix(icon-schema): fix linting * Update tools/build-icons/utils/deprecationReasonTemplate.mjs * fix(icons): add deprecation reason to some more icons * fix(docs): fix linting issue --------- Co-authored-by: Karsa <karsa@sztaki.hu> Co-authored-by: Jakob Guddas <github@jguddas.de>
106 lines
2.8 KiB
JSON
106 lines
2.8 KiB
JSON
{
|
|
"$id": "https://lucide.dev/icons.schema.json",
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$vocabulary": {
|
|
"https://json-schema.org/draft/2020-12/vocab/core": true,
|
|
"https://json-schema.org/draft/2020-12/vocab/applicator": true,
|
|
"https://json-schema.org/draft/2020-12/vocab/unevaluated": true,
|
|
"https://json-schema.org/draft/2020-12/vocab/validation": true,
|
|
"https://json-schema.org/draft/2020-12/vocab/meta-data": true,
|
|
"https://json-schema.org/draft/2020-12/vocab/format-annotation": true,
|
|
"https://json-schema.org/draft/2020-12/vocab/content": true
|
|
},
|
|
"title": "Lucide Icons icon schema",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["$schema", "categories", "tags"],
|
|
"properties": {
|
|
"$schema": {
|
|
"type": "string"
|
|
},
|
|
"aliases": {
|
|
"type": "array",
|
|
"items": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"deprecated": {
|
|
"const": true
|
|
},
|
|
"deprecationReason": {
|
|
"$ref": "#/$defs/aliasDeprecationReasons"
|
|
},
|
|
"toBeRemovedInVersion": {
|
|
"$ref": "#/$defs/versionNumber",
|
|
"description": "The version this icon will be removed in."
|
|
}
|
|
},
|
|
"dependentRequired": {
|
|
"deprecated": ["deprecationReason", "toBeRemovedInVersion"]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"categories": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"contributors": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"minItems": 1,
|
|
"uniqueItems": true
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"minItems": 1,
|
|
"uniqueItems": true
|
|
},
|
|
"deprecated": {
|
|
"const": true
|
|
},
|
|
"deprecationReason": {
|
|
"$ref": "#/$defs/iconDeprecationReasons"
|
|
},
|
|
"toBeRemovedInVersion": {
|
|
"$ref": "#/$defs/versionNumber",
|
|
"description": "The version this icon will be removed in."
|
|
}
|
|
},
|
|
"dependentRequired": {
|
|
"deprecated": ["deprecationReason", "toBeRemovedInVersion"]
|
|
},
|
|
"$defs": {
|
|
"iconDeprecationReasons": {
|
|
"type": "string",
|
|
"enum": ["icon.brand"]
|
|
},
|
|
"aliasDeprecationReasons": {
|
|
"type": "string",
|
|
"enum": ["alias.typo", "alias.name"]
|
|
},
|
|
"versionNumber": {
|
|
"type": "string",
|
|
"pattern": "v[0-9]+(\\.[0-9]+)+"
|
|
}
|
|
},
|
|
"description": "A JSON Schema for icons defined by Lucide Icons."
|
|
}
|