/** * Base Component System - Unified interfaces and types for all Glass UI components * * This module provides the foundational interfaces and types that all Glass UI components * share to ensure consistency and proper composition. */ import type { HTMLAttributes } from "react"; type ComponentSize = "xs" | "sm" | "md" | "lg" | "xl"; type ComponentVariant = "primary" | "secondary" | "tertiary" | "ghost" | "destructive" | "apple"; type GlassIntensity = "subtle" | "medium" | "strong"; type AnimationTiming = "instant" | "fast" | "normal" | "slow" | "slower"; interface GlassEffectConfig { /** Glass effect intensity level */ intensity?: GlassIntensity; /** Enable blur effect */ blur?: boolean; /** Enable saturation effect */ saturation?: boolean; /** Enable backdrop filter */ backdrop?: boolean; /** Enable borders */ borders?: boolean; /** Enable shadows */ shadows?: boolean; } interface BaseGlassProps { /** Component size */ size?: ComponentSize; /** Component variant */ variant?: ComponentVariant; /** Glass effect configuration */ glassEffect?: GlassEffectConfig; /** Enable hover effects */ hover?: boolean; /** Enable focus effects */ focus?: boolean; /** Enable active/pressed effects */ active?: boolean; /** Animation timing */ animation?: AnimationTiming; /** Disable all animations */ disableAnimations?: boolean; /** Custom CSS class name */ className?: string; /** Custom data attributes */ "data-testid"?: string; } interface InteractiveGlassProps extends BaseGlassProps { /** Disable the component */ disabled?: boolean; /** Loading state */ loading?: boolean; /** Enable magnetic hover effect */ magnetic?: boolean; /** Enable haptic feedback */ haptic?: boolean; /** Ripple effect on interaction */ ripple?: boolean; } interface CompoundComponentProps { /** Render as child element */ asChild?: boolean; /** Component children */ children?: React.ReactNode; } export interface FormGlassProps extends InteractiveGlassProps { /** Form field name */ name?: string; /** Form field value */ value?: string; /** Default value */ defaultValue?: string; /** Placeholder text */ placeholder?: string; /** Required field */ required?: boolean; /** Error state */ error?: boolean; /** Error message */ errorMessage?: string; /** Helper text */ helperText?: string; /** Field label */ label?: string; /** Read-only state */ readonly?: boolean; } interface AccessibilityProps { /** ARIA label */ "aria-label"?: string; /** ARIA labelled by */ "aria-labelledby"?: string; /** ARIA described by */ "aria-describedby"?: string; /** ARIA expanded */ "aria-expanded"?: boolean; /** ARIA controls */ "aria-controls"?: string; /** ARIA hidden */ "aria-hidden"?: boolean; /** ARIA live region */ "aria-live"?: "polite" | "assertive" | "off"; /** ARIA role */ role?: string; /** Tab index */ tabIndex?: number; } interface StyleConfig { /** CSS custom properties */ style?: React.CSSProperties; /** CSS variables */ cssVariables?: Record; /** Theme variant */ theme?: "light" | "dark" | "auto"; } interface PerformanceProps { /** Lazy load component */ lazy?: boolean; /** Virtualization enabled */ virtualized?: boolean; /** Debounce interactions */ debounce?: number; /** Throttle animations */ throttle?: number; } interface UnifiedGlassProps extends BaseGlassProps, CompoundComponentProps, AccessibilityProps, StyleConfig, PerformanceProps { /** Unique component identifier */ id?: string; /** Component key for React */ key?: React.Key; } export type ComponentPropsBuilder = Record> = UnifiedGlassProps & HTMLAttributes & P; export {}; //# sourceMappingURL=base-component.d.ts.map