@tamilvananmurugan/xlibs
Version:
Comprehensive UI component library with Aceternity, MagicUI, and ShadCN components
46 lines (39 loc) • 1.09 kB
text/typescript
import React from 'react';
import { ClassValue, clsx } from "clsx";
import { twMerge } from "tailwind-merge";
export interface BaseComponentProps {
className?: string;
children?: React.ReactNode;
id?: string;
}
export interface VariantProps<T> {
variant?: keyof T;
size?: 'sm' | 'md' | 'lg' | 'xl';
}
export interface ComponentMetadata {
name: string;
type: string;
variants: string[];
sizes?: string[];
category: 'layout' | 'form' | 'navigation' | 'content' | 'feedback';
description?: string;
}
export interface ComponentSelectionCriteria {
useCase: string;
variant?: string;
size?: string;
props?: Record<string, any>;
isComposite?: boolean;
}
export interface ComponentSelectionResult {
component: ComponentMetadata | null;
confidence: number;
alternatives: ComponentMetadata[];
}
/**
* Utility function to merge class names with clsx and tailwind-merge
* This provides better class name handling and deduplication
*/
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs));
}