{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"oneOf": [
		{
			"type": "object",
			"properties": {
				"$schema": {
					"type": "string"
				},
				"name": {
					"type": "string",
					"description": "The name of the item. Used to identify the item in the registry. It should be unique for your registry."
				},
				"title": {
					"description": "The human-readable title for your registry item. Keep it short and descriptive.",
					"type": "string"
				},
				"type": {
					"type": "string",
					"const": "registry:base"
				},
				"author": {
					"description": "The author of the item. Recommended format: username <url>",
					"type": "string",
					"minLength": 2
				},
				"description": {
					"description": "The description of the item. Used to provide a brief overview of the item.",
					"type": "string"
				},
				"dependencies": {
					"description": "An array of NPM dependencies required by the registry item.",
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"devDependencies": {
					"description": "An array of NPM dev dependencies required by the registry item.",
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"registryDependencies": {
					"type": "array",
					"items": {
						"type": "string"
					},
					"description": "An array of registry items that this item depends on. Use the name of the item to reference shadcn/ui components and urls to reference other registries."
				},
				"meta": {
					"description": "Additional metadata for the registry item. This is an object with any key value pairs.",
					"type": "object",
					"propertyNames": {
						"type": "string"
					},
					"additionalProperties": {}
				},
				"docs": {
					"description": "The documentation for the registry item. This is a markdown string.",
					"type": "string"
				},
				"categories": {
					"description": "The categories of the registry item. This is an array of strings.",
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"css": {
					"$ref": "#/$defs/__schema0"
				},
				"cssVars": {
					"type": "object",
					"properties": {
						"theme": {
							"description": "CSS variables for the @theme directive. For Tailwind v4 projects only. Use tailwind for older projects.",
							"type": "object",
							"propertyNames": {
								"type": "string"
							},
							"additionalProperties": {
								"type": "string"
							}
						},
						"light": {
							"description": "CSS variables for the light theme.",
							"type": "object",
							"propertyNames": {
								"type": "string"
							},
							"additionalProperties": {
								"type": "string"
							}
						},
						"dark": {
							"description": "CSS variables for the dark theme.",
							"type": "object",
							"propertyNames": {
								"type": "string"
							},
							"additionalProperties": {
								"type": "string"
							}
						}
					},
					"additionalProperties": false,
					"description": "The css variables for the registry item. This will be merged with the project's css variables."
				},
				"files": {
					"type": "array",
					"items": {
						"type": "object",
						"properties": {
							"content": {
								"type": "string",
								"description": "The content of the file."
							},
							"type": {
								"type": "string",
								"enum": [
									"registry:lib",
									"registry:block",
									"registry:component",
									"registry:ui",
									"registry:hook",
									"registry:page",
									"registry:file",
									"registry:theme",
									"registry:style",
									"registry:item",
									"registry:base",
									"registry:font"
								],
								"description": "The type of the file. Used to resolve the file's path for a project."
							},
							"target": {
								"type": "string",
								"description": "The target path of the file. This is where the file will be installed."
							}
						},
						"required": [
							"content",
							"type",
							"target"
						],
						"additionalProperties": false,
						"description": "The main payload of the registry item. This is an array of files that are part of the registry item. Each file is an object with a target, type, and content."
					}
				},
				"config": {
					"type": "object",
					"properties": {
						"$schema": {
							"type": "string"
						},
						"tailwind": {
							"type": "object",
							"properties": {
								"css": {
									"type": "string"
								},
								"baseColor": {
									"type": "string"
								}
							},
							"additionalProperties": false
						},
						"aliases": {
							"type": "object",
							"properties": {
								"components": {
									"type": "string"
								},
								"utils": {
									"type": "string"
								},
								"ui": {
									"default": "$lib/components/ui",
									"type": "string"
								},
								"hooks": {
									"default": "$lib/hooks",
									"type": "string"
								},
								"lib": {
									"default": "$lib",
									"type": "string"
								}
							},
							"additionalProperties": false
						},
						"typescript": {
							"default": true,
							"anyOf": [
								{
									"type": "boolean"
								},
								{
									"type": "object",
									"properties": {
										"config": {
											"type": "string"
										}
									},
									"required": [
										"config"
									],
									"additionalProperties": false
								}
							]
						},
						"style": {
							"type": "string"
						},
						"registry": {
							"default": "https://shadcn-svelte.com/registry",
							"type": "string"
						},
						"iconLibrary": {
							"type": "string",
							"enum": [
								"lucide",
								"tabler",
								"hugeicons",
								"phosphor",
								"remixicon"
							]
						},
						"menuColor": {
							"type": "string",
							"enum": [
								"default",
								"inverted",
								"default-translucent",
								"inverted-translucent"
							]
						},
						"menuAccent": {
							"type": "string",
							"enum": [
								"subtle",
								"bold"
							]
						}
					},
					"additionalProperties": false
				}
			},
			"required": [
				"name",
				"type"
			],
			"additionalProperties": false
		},
		{
			"type": "object",
			"properties": {
				"$schema": {
					"type": "string"
				},
				"name": {
					"type": "string",
					"description": "The name of the item. Used to identify the item in the registry. It should be unique for your registry."
				},
				"title": {
					"description": "The human-readable title for your registry item. Keep it short and descriptive.",
					"type": "string"
				},
				"type": {
					"type": "string",
					"const": "registry:font"
				},
				"author": {
					"description": "The author of the item. Recommended format: username <url>",
					"type": "string",
					"minLength": 2
				},
				"description": {
					"description": "The description of the item. Used to provide a brief overview of the item.",
					"type": "string"
				},
				"dependencies": {
					"description": "An array of NPM dependencies required by the registry item.",
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"devDependencies": {
					"description": "An array of NPM dev dependencies required by the registry item.",
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"registryDependencies": {
					"type": "array",
					"items": {
						"type": "string"
					},
					"description": "An array of registry items that this item depends on. Use the name of the item to reference shadcn/ui components and urls to reference other registries."
				},
				"meta": {
					"description": "Additional metadata for the registry item. This is an object with any key value pairs.",
					"type": "object",
					"propertyNames": {
						"type": "string"
					},
					"additionalProperties": {}
				},
				"docs": {
					"description": "The documentation for the registry item. This is a markdown string.",
					"type": "string"
				},
				"categories": {
					"description": "The categories of the registry item. This is an array of strings.",
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"css": {
					"$ref": "#/$defs/__schema0"
				},
				"cssVars": {
					"type": "object",
					"properties": {
						"theme": {
							"description": "CSS variables for the @theme directive. For Tailwind v4 projects only. Use tailwind for older projects.",
							"type": "object",
							"propertyNames": {
								"type": "string"
							},
							"additionalProperties": {
								"type": "string"
							}
						},
						"light": {
							"description": "CSS variables for the light theme.",
							"type": "object",
							"propertyNames": {
								"type": "string"
							},
							"additionalProperties": {
								"type": "string"
							}
						},
						"dark": {
							"description": "CSS variables for the dark theme.",
							"type": "object",
							"propertyNames": {
								"type": "string"
							},
							"additionalProperties": {
								"type": "string"
							}
						}
					},
					"additionalProperties": false,
					"description": "The css variables for the registry item. This will be merged with the project's css variables."
				},
				"files": {
					"type": "array",
					"items": {
						"type": "object",
						"properties": {
							"content": {
								"type": "string",
								"description": "The content of the file."
							},
							"type": {
								"type": "string",
								"enum": [
									"registry:lib",
									"registry:block",
									"registry:component",
									"registry:ui",
									"registry:hook",
									"registry:page",
									"registry:file",
									"registry:theme",
									"registry:style",
									"registry:item",
									"registry:base",
									"registry:font"
								],
								"description": "The type of the file. Used to resolve the file's path for a project."
							},
							"target": {
								"type": "string",
								"description": "The target path of the file. This is where the file will be installed."
							}
						},
						"required": [
							"content",
							"type",
							"target"
						],
						"additionalProperties": false,
						"description": "The main payload of the registry item. This is an array of files that are part of the registry item. Each file is an object with a target, type, and content."
					}
				},
				"font": {
					"type": "object",
					"properties": {
						"family": {
							"type": "string"
						},
						"provider": {
							"type": "string",
							"const": "google"
						},
						"import": {
							"type": "string"
						},
						"variable": {
							"type": "string"
						},
						"weight": {
							"type": "array",
							"items": {
								"type": "string"
							}
						},
						"subsets": {
							"type": "array",
							"items": {
								"type": "string"
							}
						},
						"selector": {
							"type": "string"
						},
						"dependency": {
							"type": "string"
						}
					},
					"required": [
						"family",
						"provider",
						"import",
						"variable"
					],
					"additionalProperties": false
				}
			},
			"required": [
				"name",
				"type",
				"font"
			],
			"additionalProperties": false
		},
		{
			"type": "object",
			"properties": {
				"$schema": {
					"type": "string"
				},
				"name": {
					"type": "string",
					"description": "The name of the item. Used to identify the item in the registry. It should be unique for your registry."
				},
				"title": {
					"description": "The human-readable title for your registry item. Keep it short and descriptive.",
					"type": "string"
				},
				"type": {
					"type": "string",
					"enum": [
						"registry:lib",
						"registry:block",
						"registry:component",
						"registry:ui",
						"registry:hook",
						"registry:page",
						"registry:file",
						"registry:theme",
						"registry:style",
						"registry:item",
						"registry:example",
						"registry:internal"
					]
				},
				"author": {
					"description": "The author of the item. Recommended format: username <url>",
					"type": "string",
					"minLength": 2
				},
				"description": {
					"description": "The description of the item. Used to provide a brief overview of the item.",
					"type": "string"
				},
				"dependencies": {
					"description": "An array of NPM dependencies required by the registry item.",
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"devDependencies": {
					"description": "An array of NPM dev dependencies required by the registry item.",
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"registryDependencies": {
					"type": "array",
					"items": {
						"type": "string"
					},
					"description": "An array of registry items that this item depends on. Use the name of the item to reference shadcn/ui components and urls to reference other registries."
				},
				"meta": {
					"description": "Additional metadata for the registry item. This is an object with any key value pairs.",
					"type": "object",
					"propertyNames": {
						"type": "string"
					},
					"additionalProperties": {}
				},
				"docs": {
					"description": "The documentation for the registry item. This is a markdown string.",
					"type": "string"
				},
				"categories": {
					"description": "The categories of the registry item. This is an array of strings.",
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"css": {
					"$ref": "#/$defs/__schema0"
				},
				"cssVars": {
					"type": "object",
					"properties": {
						"theme": {
							"description": "CSS variables for the @theme directive. For Tailwind v4 projects only. Use tailwind for older projects.",
							"type": "object",
							"propertyNames": {
								"type": "string"
							},
							"additionalProperties": {
								"type": "string"
							}
						},
						"light": {
							"description": "CSS variables for the light theme.",
							"type": "object",
							"propertyNames": {
								"type": "string"
							},
							"additionalProperties": {
								"type": "string"
							}
						},
						"dark": {
							"description": "CSS variables for the dark theme.",
							"type": "object",
							"propertyNames": {
								"type": "string"
							},
							"additionalProperties": {
								"type": "string"
							}
						}
					},
					"additionalProperties": false,
					"description": "The css variables for the registry item. This will be merged with the project's css variables."
				},
				"files": {
					"type": "array",
					"items": {
						"type": "object",
						"properties": {
							"content": {
								"type": "string",
								"description": "The content of the file."
							},
							"type": {
								"type": "string",
								"enum": [
									"registry:lib",
									"registry:block",
									"registry:component",
									"registry:ui",
									"registry:hook",
									"registry:page",
									"registry:file",
									"registry:theme",
									"registry:style",
									"registry:item",
									"registry:base",
									"registry:font"
								],
								"description": "The type of the file. Used to resolve the file's path for a project."
							},
							"target": {
								"type": "string",
								"description": "The target path of the file. This is where the file will be installed."
							}
						},
						"required": [
							"content",
							"type",
							"target"
						],
						"additionalProperties": false,
						"description": "The main payload of the registry item. This is an array of files that are part of the registry item. Each file is an object with a target, type, and content."
					}
				}
			},
			"required": [
				"name",
				"type"
			],
			"additionalProperties": false
		}
	],
	"$defs": {
		"__schema0": {
			"type": "object",
			"propertyNames": {
				"type": "string",
				"description": "Direct CSS string (e.g., 'font-family: sans-serif; line-height: 1.5;')"
			},
			"additionalProperties": {
				"$ref": "#/$defs/__schema1"
			},
			"description": "CSS definitions to be added to the project's CSS file. Supports at-rules, selectors, nested rules, utilities, layers, and more."
		},
		"__schema1": {
			"description": "CSS properties or nested selectors",
			"anyOf": [
				{
					"type": "string",
					"description": "CSS property value (e.g., 'blue', 'var(--color-primary)')"
				},
				{
					"description": "CSS property value for nested rule",
					"$ref": "#/$defs/__schema0"
				}
			]
		}
	}
}