UNPKG

smart-dropzone-react

Version:

🚀 A production-ready React dropzone component with smart defaults, drag & drop reordering, chunked uploads, resume functionality, and comprehensive provider support (Cloudinary, AWS S3, Supabase)

98 lines (96 loc) • 3.03 kB
interface AccessibilityConfig { enableHighContrast: boolean; enableScreenReader: boolean; enableKeyboardNavigation: boolean; enableFocusIndicators: boolean; enableReducedMotion: boolean; enableLargeText: boolean; enableColorBlindSupport: boolean; } interface AccessibilityTheme { highContrast: { primary: string; secondary: string; background: string; text: string; border: string; focus: string; error: string; success: string; warning: string; }; reducedMotion: { transitionDuration: string; animationDuration: string; }; largeText: { fontSize: string; lineHeight: string; spacing: string; }; } declare class AccessibilityManager { private static instance; private config; private theme; private isHighContrast; private isReducedMotion; private isLargeText; private static readonly DEFAULT_HIGH_CONTRAST; private static readonly DEFAULT_REDUCED_MOTION; private static readonly DEFAULT_LARGE_TEXT; private constructor(); static getInstance(config?: Partial<AccessibilityConfig>): AccessibilityManager; private initialize; private detectUserPreferences; private detectHighContrastPreference; private detectReducedMotionPreference; private detectLargeTextPreference; private setupEventListeners; private handleKeyboardNavigation; private handleTabNavigation; private handleActivation; private handleEscape; private handleArrowNavigation; private activateFileItem; private activateUploadButton; private activateClearButton; private showFocusIndicator; private applyAccessibilityFeatures; private applyHighContrast; private applyReducedMotion; private applyLargeText; private applyScreenReaderSupport; private addAriaLabels; private addAriaDescriptions; private addAriaLiveRegions; updateConfig(newConfig: Partial<AccessibilityConfig> | { highContrast?: boolean; reducedMotion?: boolean; largeText?: boolean; screenReader?: boolean; }): void; getConfig(): AccessibilityConfig | { highContrast: boolean; reducedMotion: boolean; largeText: boolean; screenReader: boolean; }; generateAriaLabel(action: string, options: Record<string, any>): string; enableHighContrast(): void; disableHighContrast(): void; enableReducedMotion(): void; disableReducedMotion(): void; enableLargeText(): void; disableLargeText(): void; updateTheme(newTheme: Partial<AccessibilityTheme>): void; getStatus(): { isHighContrast: boolean; isReducedMotion: boolean; isLargeText: boolean; isScreenReaderEnabled: boolean; isKeyboardNavigationEnabled: boolean; }; announceToScreenReader(message: string): void; } export { type AccessibilityConfig, AccessibilityManager, type AccessibilityTheme };