shadcn-vue
Version:
Add components to your apps.
1,391 lines • 58.6 kB
TypeScript
import { C as registryItemSchema, g as registryIndexSchema } from "./index-BPQ49cSc.js";
import { t as Config } from "./get-config-DxVMMGMu.js";
import { z as z$1 } from "zod";
//#region src/registry/api.d.ts
declare function getRegistry(name: string, options?: {
config?: Partial<Config>;
useCache?: boolean;
}): Promise<{
name: string;
homepage: string;
items: ({
name: string;
type: "registry:base";
config?: {
style?: string | undefined;
iconLibrary?: string | undefined;
font?: string | undefined;
fontHeading?: string | undefined;
menuAccent?: "subtle" | "bold" | undefined;
menuColor?: "default" | "inverted" | "default-translucent" | "inverted-translucent" | undefined;
$schema?: string | undefined;
tailwind?: {
config?: string | undefined;
baseColor?: string | undefined;
css?: string | undefined;
cssVariables?: boolean | undefined;
prefix?: string | undefined;
} | undefined;
typescript?: boolean | undefined;
rtl?: boolean | undefined;
pointer?: boolean | undefined;
aliases?: {
components?: string | undefined;
utils?: string | undefined;
ui?: string | undefined;
lib?: string | undefined;
hooks?: string | undefined;
composables?: string | undefined;
} | undefined;
registries?: Record<string, string | {
url: string;
params?: Record<string, string> | undefined;
headers?: Record<string, string> | undefined;
}> | undefined;
} | undefined;
description?: string | undefined;
title?: string | undefined;
$schema?: string | undefined;
extends?: string | undefined;
author?: string | undefined;
dependencies?: string[] | undefined;
devDependencies?: string[] | undefined;
registryDependencies?: string[] | undefined;
files?: ({
path: string;
type: "registry:file" | "registry:page";
target: string;
content?: string | undefined;
} | {
path: string;
type: "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:composable" | "registry:theme" | "registry:style" | "registry:item" | "registry:base" | "registry:font" | "registry:example" | "registry:internal";
content?: string | undefined;
target?: string | undefined;
})[] | undefined;
tailwind?: {
config?: {
theme?: Record<string, any> | undefined;
content?: string[] | undefined;
plugins?: string[] | undefined;
} | undefined;
} | undefined;
cssVars?: {
theme?: Record<string, string> | undefined;
light?: Record<string, string> | undefined;
dark?: Record<string, string> | undefined;
} | undefined;
css?: Record<string, any> | undefined;
envVars?: Record<string, string> | undefined;
meta?: Record<string, any> | undefined;
docs?: string | undefined;
categories?: string[] | undefined;
} | {
name: string;
font: {
family: string;
provider: "google";
import: string;
variable: string;
weight?: string[] | undefined;
subsets?: string[] | undefined;
};
type: "registry:font";
description?: string | undefined;
title?: string | undefined;
$schema?: string | undefined;
extends?: string | undefined;
author?: string | undefined;
dependencies?: string[] | undefined;
devDependencies?: string[] | undefined;
registryDependencies?: string[] | undefined;
files?: ({
path: string;
type: "registry:file" | "registry:page";
target: string;
content?: string | undefined;
} | {
path: string;
type: "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:composable" | "registry:theme" | "registry:style" | "registry:item" | "registry:base" | "registry:font" | "registry:example" | "registry:internal";
content?: string | undefined;
target?: string | undefined;
})[] | undefined;
tailwind?: {
config?: {
theme?: Record<string, any> | undefined;
content?: string[] | undefined;
plugins?: string[] | undefined;
} | undefined;
} | undefined;
cssVars?: {
theme?: Record<string, string> | undefined;
light?: Record<string, string> | undefined;
dark?: Record<string, string> | undefined;
} | undefined;
css?: Record<string, any> | undefined;
envVars?: Record<string, string> | undefined;
meta?: Record<string, any> | undefined;
docs?: string | undefined;
categories?: string[] | undefined;
} | {
name: string;
type: "registry:file" | "registry:page" | "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:composable" | "registry:theme" | "registry:style" | "registry:item" | "registry:example" | "registry:internal";
description?: string | undefined;
title?: string | undefined;
$schema?: string | undefined;
extends?: string | undefined;
author?: string | undefined;
dependencies?: string[] | undefined;
devDependencies?: string[] | undefined;
registryDependencies?: string[] | undefined;
files?: ({
path: string;
type: "registry:file" | "registry:page";
target: string;
content?: string | undefined;
} | {
path: string;
type: "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:composable" | "registry:theme" | "registry:style" | "registry:item" | "registry:base" | "registry:font" | "registry:example" | "registry:internal";
content?: string | undefined;
target?: string | undefined;
})[] | undefined;
tailwind?: {
config?: {
theme?: Record<string, any> | undefined;
content?: string[] | undefined;
plugins?: string[] | undefined;
} | undefined;
} | undefined;
cssVars?: {
theme?: Record<string, string> | undefined;
light?: Record<string, string> | undefined;
dark?: Record<string, string> | undefined;
} | undefined;
css?: Record<string, any> | undefined;
envVars?: Record<string, string> | undefined;
meta?: Record<string, any> | undefined;
docs?: string | undefined;
categories?: string[] | undefined;
})[];
}>;
declare function getRegistryItems(items: string[], options?: {
config?: Partial<Config>;
useCache?: boolean;
}): Promise<({
name: string;
type: "registry:base";
config?: {
style?: string | undefined;
iconLibrary?: string | undefined;
font?: string | undefined;
fontHeading?: string | undefined;
menuAccent?: "subtle" | "bold" | undefined;
menuColor?: "default" | "inverted" | "default-translucent" | "inverted-translucent" | undefined;
$schema?: string | undefined;
tailwind?: {
config?: string | undefined;
baseColor?: string | undefined;
css?: string | undefined;
cssVariables?: boolean | undefined;
prefix?: string | undefined;
} | undefined;
typescript?: boolean | undefined;
rtl?: boolean | undefined;
pointer?: boolean | undefined;
aliases?: {
components?: string | undefined;
utils?: string | undefined;
ui?: string | undefined;
lib?: string | undefined;
hooks?: string | undefined;
composables?: string | undefined;
} | undefined;
registries?: Record<string, string | {
url: string;
params?: Record<string, string> | undefined;
headers?: Record<string, string> | undefined;
}> | undefined;
} | undefined;
description?: string | undefined;
title?: string | undefined;
$schema?: string | undefined;
extends?: string | undefined;
author?: string | undefined;
dependencies?: string[] | undefined;
devDependencies?: string[] | undefined;
registryDependencies?: string[] | undefined;
files?: ({
path: string;
type: "registry:file" | "registry:page";
target: string;
content?: string | undefined;
} | {
path: string;
type: "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:composable" | "registry:theme" | "registry:style" | "registry:item" | "registry:base" | "registry:font" | "registry:example" | "registry:internal";
content?: string | undefined;
target?: string | undefined;
})[] | undefined;
tailwind?: {
config?: {
theme?: Record<string, any> | undefined;
content?: string[] | undefined;
plugins?: string[] | undefined;
} | undefined;
} | undefined;
cssVars?: {
theme?: Record<string, string> | undefined;
light?: Record<string, string> | undefined;
dark?: Record<string, string> | undefined;
} | undefined;
css?: Record<string, any> | undefined;
envVars?: Record<string, string> | undefined;
meta?: Record<string, any> | undefined;
docs?: string | undefined;
categories?: string[] | undefined;
} | {
name: string;
font: {
family: string;
provider: "google";
import: string;
variable: string;
weight?: string[] | undefined;
subsets?: string[] | undefined;
};
type: "registry:font";
description?: string | undefined;
title?: string | undefined;
$schema?: string | undefined;
extends?: string | undefined;
author?: string | undefined;
dependencies?: string[] | undefined;
devDependencies?: string[] | undefined;
registryDependencies?: string[] | undefined;
files?: ({
path: string;
type: "registry:file" | "registry:page";
target: string;
content?: string | undefined;
} | {
path: string;
type: "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:composable" | "registry:theme" | "registry:style" | "registry:item" | "registry:base" | "registry:font" | "registry:example" | "registry:internal";
content?: string | undefined;
target?: string | undefined;
})[] | undefined;
tailwind?: {
config?: {
theme?: Record<string, any> | undefined;
content?: string[] | undefined;
plugins?: string[] | undefined;
} | undefined;
} | undefined;
cssVars?: {
theme?: Record<string, string> | undefined;
light?: Record<string, string> | undefined;
dark?: Record<string, string> | undefined;
} | undefined;
css?: Record<string, any> | undefined;
envVars?: Record<string, string> | undefined;
meta?: Record<string, any> | undefined;
docs?: string | undefined;
categories?: string[] | undefined;
} | {
name: string;
type: "registry:file" | "registry:page" | "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:composable" | "registry:theme" | "registry:style" | "registry:item" | "registry:example" | "registry:internal";
description?: string | undefined;
title?: string | undefined;
$schema?: string | undefined;
extends?: string | undefined;
author?: string | undefined;
dependencies?: string[] | undefined;
devDependencies?: string[] | undefined;
registryDependencies?: string[] | undefined;
files?: ({
path: string;
type: "registry:file" | "registry:page";
target: string;
content?: string | undefined;
} | {
path: string;
type: "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:composable" | "registry:theme" | "registry:style" | "registry:item" | "registry:base" | "registry:font" | "registry:example" | "registry:internal";
content?: string | undefined;
target?: string | undefined;
})[] | undefined;
tailwind?: {
config?: {
theme?: Record<string, any> | undefined;
content?: string[] | undefined;
plugins?: string[] | undefined;
} | undefined;
} | undefined;
cssVars?: {
theme?: Record<string, string> | undefined;
light?: Record<string, string> | undefined;
dark?: Record<string, string> | undefined;
} | undefined;
css?: Record<string, any> | undefined;
envVars?: Record<string, string> | undefined;
meta?: Record<string, any> | undefined;
docs?: string | undefined;
categories?: string[] | undefined;
})[]>;
declare function resolveRegistryItems(items: string[], options?: {
config?: Partial<Config>;
useCache?: boolean;
}): Promise<{
dependencies?: string[] | undefined;
devDependencies?: string[] | undefined;
files?: ({
path: string;
type: "registry:file" | "registry:page";
target: string;
content?: string | undefined;
} | {
path: string;
type: "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:composable" | "registry:theme" | "registry:style" | "registry:item" | "registry:base" | "registry:font" | "registry:example" | "registry:internal";
content?: string | undefined;
target?: string | undefined;
})[] | undefined;
tailwind?: {
config?: {
theme?: Record<string, any> | undefined;
content?: string[] | undefined;
plugins?: string[] | undefined;
} | undefined;
} | undefined;
cssVars?: {
theme?: Record<string, string> | undefined;
light?: Record<string, string> | undefined;
dark?: Record<string, string> | undefined;
} | undefined;
css?: Record<string, any> | undefined;
envVars?: Record<string, string> | undefined;
docs?: string | undefined;
fonts?: {
name: string;
font: {
family: string;
provider: "google";
import: string;
variable: string;
weight?: string[] | undefined;
subsets?: string[] | undefined;
};
type: "registry:font";
description?: string | undefined;
title?: string | undefined;
$schema?: string | undefined;
extends?: string | undefined;
author?: string | undefined;
dependencies?: string[] | undefined;
devDependencies?: string[] | undefined;
registryDependencies?: string[] | undefined;
files?: ({
path: string;
type: "registry:file" | "registry:page";
target: string;
content?: string | undefined;
} | {
path: string;
type: "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:composable" | "registry:theme" | "registry:style" | "registry:item" | "registry:base" | "registry:font" | "registry:example" | "registry:internal";
content?: string | undefined;
target?: string | undefined;
})[] | undefined;
tailwind?: {
config?: {
theme?: Record<string, any> | undefined;
content?: string[] | undefined;
plugins?: string[] | undefined;
} | undefined;
} | undefined;
cssVars?: {
theme?: Record<string, string> | undefined;
light?: Record<string, string> | undefined;
dark?: Record<string, string> | undefined;
} | undefined;
css?: Record<string, any> | undefined;
envVars?: Record<string, string> | undefined;
meta?: Record<string, any> | undefined;
docs?: string | undefined;
categories?: string[] | undefined;
}[] | undefined;
} | null>;
declare function getRegistriesConfig(cwd: string): Promise<{
registries: Record<string, string | {
url: string;
params?: Record<string, string> | undefined;
headers?: Record<string, string> | undefined;
}>;
}>;
declare function getShadcnRegistryIndex(): Promise<({
name: string;
type: "registry:base";
config?: {
style?: string | undefined;
iconLibrary?: string | undefined;
font?: string | undefined;
fontHeading?: string | undefined;
menuAccent?: "subtle" | "bold" | undefined;
menuColor?: "default" | "inverted" | "default-translucent" | "inverted-translucent" | undefined;
$schema?: string | undefined;
tailwind?: {
config?: string | undefined;
baseColor?: string | undefined;
css?: string | undefined;
cssVariables?: boolean | undefined;
prefix?: string | undefined;
} | undefined;
typescript?: boolean | undefined;
rtl?: boolean | undefined;
pointer?: boolean | undefined;
aliases?: {
components?: string | undefined;
utils?: string | undefined;
ui?: string | undefined;
lib?: string | undefined;
hooks?: string | undefined;
composables?: string | undefined;
} | undefined;
registries?: Record<string, string | {
url: string;
params?: Record<string, string> | undefined;
headers?: Record<string, string> | undefined;
}> | undefined;
} | undefined;
description?: string | undefined;
title?: string | undefined;
$schema?: string | undefined;
extends?: string | undefined;
author?: string | undefined;
dependencies?: string[] | undefined;
devDependencies?: string[] | undefined;
registryDependencies?: string[] | undefined;
files?: ({
path: string;
type: "registry:file" | "registry:page";
target: string;
content?: string | undefined;
} | {
path: string;
type: "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:composable" | "registry:theme" | "registry:style" | "registry:item" | "registry:base" | "registry:font" | "registry:example" | "registry:internal";
content?: string | undefined;
target?: string | undefined;
})[] | undefined;
tailwind?: {
config?: {
theme?: Record<string, any> | undefined;
content?: string[] | undefined;
plugins?: string[] | undefined;
} | undefined;
} | undefined;
cssVars?: {
theme?: Record<string, string> | undefined;
light?: Record<string, string> | undefined;
dark?: Record<string, string> | undefined;
} | undefined;
css?: Record<string, any> | undefined;
envVars?: Record<string, string> | undefined;
meta?: Record<string, any> | undefined;
docs?: string | undefined;
categories?: string[] | undefined;
} | {
name: string;
font: {
family: string;
provider: "google";
import: string;
variable: string;
weight?: string[] | undefined;
subsets?: string[] | undefined;
};
type: "registry:font";
description?: string | undefined;
title?: string | undefined;
$schema?: string | undefined;
extends?: string | undefined;
author?: string | undefined;
dependencies?: string[] | undefined;
devDependencies?: string[] | undefined;
registryDependencies?: string[] | undefined;
files?: ({
path: string;
type: "registry:file" | "registry:page";
target: string;
content?: string | undefined;
} | {
path: string;
type: "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:composable" | "registry:theme" | "registry:style" | "registry:item" | "registry:base" | "registry:font" | "registry:example" | "registry:internal";
content?: string | undefined;
target?: string | undefined;
})[] | undefined;
tailwind?: {
config?: {
theme?: Record<string, any> | undefined;
content?: string[] | undefined;
plugins?: string[] | undefined;
} | undefined;
} | undefined;
cssVars?: {
theme?: Record<string, string> | undefined;
light?: Record<string, string> | undefined;
dark?: Record<string, string> | undefined;
} | undefined;
css?: Record<string, any> | undefined;
envVars?: Record<string, string> | undefined;
meta?: Record<string, any> | undefined;
docs?: string | undefined;
categories?: string[] | undefined;
} | {
name: string;
type: "registry:file" | "registry:page" | "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:composable" | "registry:theme" | "registry:style" | "registry:item" | "registry:example" | "registry:internal";
description?: string | undefined;
title?: string | undefined;
$schema?: string | undefined;
extends?: string | undefined;
author?: string | undefined;
dependencies?: string[] | undefined;
devDependencies?: string[] | undefined;
registryDependencies?: string[] | undefined;
files?: ({
path: string;
type: "registry:file" | "registry:page";
target: string;
content?: string | undefined;
} | {
path: string;
type: "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:composable" | "registry:theme" | "registry:style" | "registry:item" | "registry:base" | "registry:font" | "registry:example" | "registry:internal";
content?: string | undefined;
target?: string | undefined;
})[] | undefined;
tailwind?: {
config?: {
theme?: Record<string, any> | undefined;
content?: string[] | undefined;
plugins?: string[] | undefined;
} | undefined;
} | undefined;
cssVars?: {
theme?: Record<string, string> | undefined;
light?: Record<string, string> | undefined;
dark?: Record<string, string> | undefined;
} | undefined;
css?: Record<string, any> | undefined;
envVars?: Record<string, string> | undefined;
meta?: Record<string, any> | undefined;
docs?: string | undefined;
categories?: string[] | undefined;
})[] | undefined>;
declare function getRegistryStyles(): Promise<{
name: string;
label: string;
}[]>;
declare function getRegistryIcons(): Promise<Record<string, Record<string, string>>>;
declare function getRegistryBaseColors(): Promise<readonly [{
readonly name: "neutral";
readonly label: "Neutral";
}, {
readonly name: "stone";
readonly label: "Stone";
}, {
readonly name: "zinc";
readonly label: "Zinc";
}, {
readonly name: "mauve";
readonly label: "Mauve";
}, {
readonly name: "olive";
readonly label: "Olive";
}, {
readonly name: "mist";
readonly label: "Mist";
}, {
readonly name: "taupe";
readonly label: "Taupe";
}]>;
/**
* Get available component library bases (e.g., Reka UI).
*/
declare function getRegistryBases(): readonly [{
readonly name: "reka";
readonly label: "Reka UI";
readonly description: "Optimized for fast development, easy maintenance, and accessibility.";
readonly dependencies: readonly ["reka-ui"];
}];
/**
* Get available visual styles.
*/
declare function getRegistryVisualStyles(): readonly [{
readonly name: "vega";
readonly label: "Vega";
readonly description: "The classic shadcn/ui look. Clean, neutral, and familiar.";
}, {
readonly name: "nova";
readonly label: "Nova";
readonly description: "Reduced padding and margins for compact layouts.";
}, {
readonly name: "maia";
readonly label: "Maia";
readonly description: "Soft and rounded, with generous spacing.";
}, {
readonly name: "lyra";
readonly label: "Lyra";
readonly description: "Boxy and sharp. Pairs well with mono fonts.";
}, {
readonly name: "mira";
readonly label: "Mira";
readonly description: "Compact. Made for dense interfaces.";
}, {
readonly name: "luma";
readonly label: "Luma";
readonly description: "Fluid, luminous, and glassy.";
}, {
readonly name: "sera";
readonly label: "Sera";
readonly description: "Editorial and typographic.";
}];
/**
* Get available icon libraries.
*/
declare function getRegistryIconLibraries(): readonly [{
readonly name: "lucide";
readonly label: "Lucide";
readonly packages: readonly ["@lucide/vue"];
}, {
readonly name: "tabler";
readonly label: "Tabler Icons";
readonly packages: readonly ["@tabler/icons-vue"];
}, {
readonly name: "hugeicons";
readonly label: "HugeIcons";
readonly packages: readonly ["@hugeicons/vue", "@hugeicons/core-free-icons"];
}, {
readonly name: "phosphor";
readonly label: "Phosphor Icons";
readonly packages: readonly ["@phosphor-icons/vue"];
}, {
readonly name: "remixicon";
readonly label: "Remix Icon";
readonly packages: readonly ["@remixicon/vue"];
}];
/**
* Get available fonts.
*/
declare function getRegistryFonts(): readonly [{
readonly name: "inter";
readonly label: "Inter";
readonly family: "Inter";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "geist-sans";
readonly label: "Geist";
readonly family: "Geist";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "noto-sans";
readonly label: "Noto Sans";
readonly family: "Noto Sans";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "nunito-sans";
readonly label: "Nunito Sans";
readonly family: "Nunito Sans";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "figtree";
readonly label: "Figtree";
readonly family: "Figtree";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "roboto";
readonly label: "Roboto";
readonly family: "Roboto";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "raleway";
readonly label: "Raleway";
readonly family: "Raleway";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "dm-sans";
readonly label: "DM Sans";
readonly family: "DM Sans";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "public-sans";
readonly label: "Public Sans";
readonly family: "Public Sans";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "outfit";
readonly label: "Outfit";
readonly family: "Outfit";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "jetbrains-mono";
readonly label: "JetBrains Mono";
readonly family: "JetBrains Mono";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap');";
readonly variable: "--font-mono";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "playfair-display";
readonly label: "Playfair Display";
readonly family: "Playfair Display";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700;800;900&display=swap');";
readonly variable: "--font-serif";
readonly weight: readonly ["400", "500", "600", "700", "800", "900"];
}, {
readonly name: "oxanium";
readonly label: "Oxanium";
readonly family: "Oxanium";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Oxanium:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "manrope";
readonly label: "Manrope";
readonly family: "Manrope";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "space-grotesk";
readonly label: "Space Grotesk";
readonly family: "Space Grotesk";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "montserrat";
readonly label: "Montserrat";
readonly family: "Montserrat";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "ibm-plex-sans";
readonly label: "IBM Plex Sans";
readonly family: "IBM Plex Sans";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "source-sans-3";
readonly label: "Source Sans 3";
readonly family: "Source Sans 3";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "instrument-sans";
readonly label: "Instrument Sans";
readonly family: "Instrument Sans";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "geist-mono";
readonly label: "Geist Mono";
readonly family: "Geist Mono";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500;600;700&display=swap');";
readonly variable: "--font-mono";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "noto-serif";
readonly label: "Noto Serif";
readonly family: "Noto Serif";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Noto+Serif:wght@400;500;600;700&display=swap');";
readonly variable: "--font-serif";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "roboto-slab";
readonly label: "Roboto Slab";
readonly family: "Roboto Slab";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@400;500;600;700&display=swap');";
readonly variable: "--font-serif";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "merriweather";
readonly label: "Merriweather";
readonly family: "Merriweather";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Merriweather:wght@400;500;600;700&display=swap');";
readonly variable: "--font-serif";
readonly weight: readonly ["400", "500", "600", "700"];
}, {
readonly name: "lora";
readonly label: "Lora";
readonly family: "Lora";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Lora:wght@400;500;600;700&display=swap');";
readonly variable: "--font-serif";
readonly weight: readonly ["400", "500", "600", "700"];
}];
/**
* Get a specific base by name.
*/
declare function getRegistryBase(name: string): {
readonly name: "reka";
readonly label: "Reka UI";
readonly description: "Optimized for fast development, easy maintenance, and accessibility.";
readonly dependencies: readonly ["reka-ui"];
} | undefined;
/**
* Get a specific visual style by name.
*/
declare function getRegistryVisualStyle(name: string): {
readonly name: "vega";
readonly label: "Vega";
readonly description: "The classic shadcn/ui look. Clean, neutral, and familiar.";
} | {
readonly name: "nova";
readonly label: "Nova";
readonly description: "Reduced padding and margins for compact layouts.";
} | {
readonly name: "maia";
readonly label: "Maia";
readonly description: "Soft and rounded, with generous spacing.";
} | {
readonly name: "lyra";
readonly label: "Lyra";
readonly description: "Boxy and sharp. Pairs well with mono fonts.";
} | {
readonly name: "mira";
readonly label: "Mira";
readonly description: "Compact. Made for dense interfaces.";
} | {
readonly name: "luma";
readonly label: "Luma";
readonly description: "Fluid, luminous, and glassy.";
} | {
readonly name: "sera";
readonly label: "Sera";
readonly description: "Editorial and typographic.";
} | undefined;
/**
* Get a specific icon library by name.
*/
declare function getRegistryIconLibrary(name: string): {
readonly name: "lucide";
readonly label: "Lucide";
readonly packages: readonly ["@lucide/vue"];
} | {
readonly name: "tabler";
readonly label: "Tabler Icons";
readonly packages: readonly ["@tabler/icons-vue"];
} | {
readonly name: "hugeicons";
readonly label: "HugeIcons";
readonly packages: readonly ["@hugeicons/vue", "@hugeicons/core-free-icons"];
} | {
readonly name: "phosphor";
readonly label: "Phosphor Icons";
readonly packages: readonly ["@phosphor-icons/vue"];
} | {
readonly name: "remixicon";
readonly label: "Remix Icon";
readonly packages: readonly ["@remixicon/vue"];
} | undefined;
/**
* Get a specific font by name.
*/
declare function getRegistryFont(name: string): {
readonly name: "inter";
readonly label: "Inter";
readonly family: "Inter";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "geist-sans";
readonly label: "Geist";
readonly family: "Geist";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "noto-sans";
readonly label: "Noto Sans";
readonly family: "Noto Sans";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "nunito-sans";
readonly label: "Nunito Sans";
readonly family: "Nunito Sans";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "figtree";
readonly label: "Figtree";
readonly family: "Figtree";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "roboto";
readonly label: "Roboto";
readonly family: "Roboto";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "raleway";
readonly label: "Raleway";
readonly family: "Raleway";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "dm-sans";
readonly label: "DM Sans";
readonly family: "DM Sans";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "public-sans";
readonly label: "Public Sans";
readonly family: "Public Sans";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "outfit";
readonly label: "Outfit";
readonly family: "Outfit";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "jetbrains-mono";
readonly label: "JetBrains Mono";
readonly family: "JetBrains Mono";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap');";
readonly variable: "--font-mono";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "playfair-display";
readonly label: "Playfair Display";
readonly family: "Playfair Display";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700;800;900&display=swap');";
readonly variable: "--font-serif";
readonly weight: readonly ["400", "500", "600", "700", "800", "900"];
} | {
readonly name: "oxanium";
readonly label: "Oxanium";
readonly family: "Oxanium";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Oxanium:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "manrope";
readonly label: "Manrope";
readonly family: "Manrope";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "space-grotesk";
readonly label: "Space Grotesk";
readonly family: "Space Grotesk";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "montserrat";
readonly label: "Montserrat";
readonly family: "Montserrat";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "ibm-plex-sans";
readonly label: "IBM Plex Sans";
readonly family: "IBM Plex Sans";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "source-sans-3";
readonly label: "Source Sans 3";
readonly family: "Source Sans 3";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "instrument-sans";
readonly label: "Instrument Sans";
readonly family: "Instrument Sans";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600;700&display=swap');";
readonly variable: "--font-sans";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "geist-mono";
readonly label: "Geist Mono";
readonly family: "Geist Mono";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500;600;700&display=swap');";
readonly variable: "--font-mono";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "noto-serif";
readonly label: "Noto Serif";
readonly family: "Noto Serif";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Noto+Serif:wght@400;500;600;700&display=swap');";
readonly variable: "--font-serif";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "roboto-slab";
readonly label: "Roboto Slab";
readonly family: "Roboto Slab";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@400;500;600;700&display=swap');";
readonly variable: "--font-serif";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "merriweather";
readonly label: "Merriweather";
readonly family: "Merriweather";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Merriweather:wght@400;500;600;700&display=swap');";
readonly variable: "--font-serif";
readonly weight: readonly ["400", "500", "600", "700"];
} | {
readonly name: "lora";
readonly label: "Lora";
readonly family: "Lora";
readonly provider: "google";
readonly import: "@import url('https://fonts.googleapis.com/css2?family=Lora:wght@400;500;600;700&display=swap');";
readonly variable: "--font-serif";
readonly weight: readonly ["400", "500", "600", "700"];
} | undefined;
/**
* Get available presets (predefined combinations of base, style, icons, and font).
*/
declare function getRegistryPresets(): ({
title: string;
description: string;
base: string;
style: string;
baseColor: string;
theme: string;
iconLibrary: string;
font: string;
fontHeading: string;
menuAccent: "subtle";
menuColor: "default";
radius: string;
rtl: boolean;
name: string;
} | {
title: string;
description: string;
base: string;
style: string;
baseColor: string;
theme: string;
iconLibrary: string;
font: string;
fontHeading: string;
menuAccent: "subtle";
menuColor: "default";
radius: string;
rtl: boolean;
name: string;
} | {
title: string;
description: string;
base: string;
style: string;
baseColor: string;
theme: string;
iconLibrary: string;
font: string;
fontHeading: string;
menuAccent: "subtle";
menuColor: "default";
radius: string;
rtl: boolean;
name: string;
} | {
title: string;
description: string;
base: string;
style: string;
baseColor: string;
theme: string;
iconLibrary: string;
font: string;
fontHeading: string;
menuAccent: "subtle";
menuColor: "default";
radius: string;
rtl: boolean;
name: string;
} | {
title: string;
description: string;
base: string;
style: string;
baseColor: string;
theme: string;
iconLibrary: string;
font: string;
fontHeading: string;
menuAccent: "subtle";
menuColor: "default";
radius: string;
rtl: boolean;
name: string;
} | {
title: string;
description: string;
base: string;
style: string;
baseColor: string;
theme: string;
iconLibrary: string;
font: string;
fontHeading: string;
menuAccent: "subtle";
menuColor: "default";
radius: string;
rtl: boolean;
name: string;
} | {
title: string;
description: string;
base: string;
style: string;
baseColor: string;
theme: string;
iconLibrary: string;
font: string;
fontHeading: string;
menuAccent: "subtle";
menuColor: "default";
radius: string;
rtl: boolean;
name: string;
})[];
/**
* Get a specific preset by name.
*/
declare function getRegistryPreset(name: string): {
title: string;
description: string;
base: string;
style: string;
baseColor: string;
theme: string;
iconLibrary: string;
font: string;
fontHeading: string;
menuAccent: "subtle";
menuColor: "default";
radius: string;
rtl: boolean;
name: string;
} | undefined;
declare function getRegistryBaseColor(baseColor: string): Promise<{
cssVars: {
theme?: Record<string, string> | undefined;
light?: Record<string, string> | undefined;
dark?: Record<string, string> | undefined;
};
inlineColors: {
light: Record<string, string>;
dark: Record<string, string>;
};
inlineColorsTemplate: string;
cssVarsTemplate: string;
cssVarsV4?: {
theme?: Record<string, string> | undefined;
light?: Record<string, string> | undefined;
dark?: Record<string, string> | undefined;
} | undefined;
} | undefined>;
/**
* @deprecated This function is deprecated and will be removed in a future version.
*/
declare function resolveTree(index: z$1.infer<typeof registryIndexSchema>, names: string[]): Promise<({
name: string;
type: "registry:base";
config?: {
style?: string | undefined;
iconLibrary?: string | undefined;
font?: string | undefined;
fontHeading?: string | undefined;
menuAccent?: "subtle" | "bold" | undefined;
menuColor?: "default" | "inverted" | "default-translucent" | "inverted-translucent" | undefined;
$schema?: string | undefined;
tailwind?: {
config?: string | undefined;
baseColor?: string | undefined;
css?: string | undefined;
cssVariables?: boolean | undefined;
prefix?: string | undefined;
} | undefined;
typescript?: boolean | undefined;
rtl?: boolean | undefined;
pointer?: boolean | undefined;
aliases?: {
components?: string | undefined;
utils?: string | undefined;
ui?: string | undefined;
lib?: string | undefined;
hooks?: string | undefined;
composables?: string | undefined;
} | undefined;
registries?: Record<string, string | {
url: string;
params?: Record<string, string> | undefined;
headers?: Record<string, string> | undefined;
}> | undefined;
} | undefined;
description?: string | undefined;
title?: string | undefined;
$schema?: string | undefined;
extends?: string | undefined;
author?: string | undefined;
dependencies?: string[] | undefined;
devDependencies?: string[] | undefined;
registryDependencies?: string[] | undefined;
files?: ({
path: string;
type: "registry:file" | "registry:page";
target: string;
content?: string | undefined;
} | {
path: string;
type: "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:composable" | "registry:theme" | "registry:style" | "registry:item" | "registry:base" | "registry:font" | "registry:example" | "registry:internal";
content?: string | undefined;
target?: string | undefined;
})[] | undefined;
tailwind?: {
config?: {
theme?: Record<string, any> | undefined;
content?: string[] | undefined;
plugins?: string[] | undefined;
} | undefined;
} | undefined;
cssVars?: {
theme?: Record<string, string> | undefined;
light?: Record<string, string> | undefined;
dark?: Record<string, string> | undefined;
} | undefined;
css?: Record<string, any> | undefined;
envVars?: Record<string, string> | undefined;
meta?: Record<string, any> | undefined;
docs?: string | undefined;
categories?: string[] | undefined;
} | {
name: string;
font: {
family: string;
provider: "google";
import: string;
variable: string;
weight?: string[] | undefined;
subsets?: string[] | undefined;
};
type: "registry:font";
description?: string | undefined;
title?: string | undefined;
$schema?: string | undefined;
extends?: string | undefined;
author?: string | undefined;
dependencies?: string[] | undefined;
devDependencies?: string[] | undefined;
registryDependencies?: string[] | undefined;
files?: ({
path: string;
type: "registry:file" | "registry:page";
target: string;
content?: string | undefined;
} | {
path: string;
type: "registry:lib" | "registry:block" | "registry:component" | "registry:ui" | "registry:hook" | "registry:composable" | "registry:theme" | "registry:style" | "registry:item" | "registry:base" | "registry:font" | "registry:example" | "registry:internal";
content?: string | undefined;
target?: string | undefined;
})[] | undefined;
tailwind?: {
config?: {
theme?: Record<string, any> | undefined;
content?: string[] | undefined;
plugins?: string[] | undefined;
} | undefined;
} | undefined;
cssVars?: {
theme?: Record<string, string> | undefined;
light?: Record<string, string> | undefined;
dark?: Record<string, string> | undefined;
} | undefined;
css?: Record<string, any> | undefined;
envVars?: Record<string, string> | undefined;
meta?: Record<string, any> | undefined;
d