/** * Component Catalog — Universal UI component registry * * Data lives in catalog.json; this module loads it, applies defaults, * and re-exports the same typed API. */ export type AtomicLevel = "atom" | "molecule" | "organism" | "template"; export interface CatalogComponent { /** PascalCase name used in specs and codegen */ name: string; /** Display slug (kebab-case) */ slug: string; /** Atomic Design level */ level: AtomicLevel; /** Category group for dashboard display */ category: CatalogCategory; /** One-line description */ description: string; /** Alternate names across design systems */ aliases: string[]; /** shadcn/ui base components this maps to (empty = custom) */ shadcnBase: string[]; /** Default variants for spec scaffolding */ variants: string[]; /** Default prop definitions */ props: Record; /** Accessibility defaults */ a11y: { role?: string; ariaLabel?: string; }; /** How many design systems include this (from component.gallery) */ prevalence: number; } export type CatalogCategory = "buttons" | "inputs" | "data-display" | "feedback" | "navigation" | "layout" | "overlays" | "media" | "typography"; export declare const CATALOG_CATEGORIES: Record; export declare const COMPONENT_CATALOG: CatalogComponent[]; /** Get all components in a category */ export declare function getCatalogByCategory(cat: CatalogCategory): CatalogComponent[]; /** Lookup by slug or name (case-insensitive) */ export declare function findCatalogComponent(query: string): CatalogComponent | undefined; /** Get all shadcn-mapped components */ export declare function getShadcnMapped(): CatalogComponent[]; /** Get components by atomic level */ export declare function getCatalogByLevel(level: AtomicLevel): CatalogComponent[]; /** Summary counts */ export declare function getCatalogStats(): { total: number; atoms: number; molecules: number; organisms: number; shadcn: number; };