UNPKG

claritykit-svelte

Version:

A comprehensive Svelte component library focused on accessibility, ADHD-optimized design, developer experience, and full SSR compatibility

105 lines 4.7 kB
/** * Crisis Mode Detection and Management Utility * * Provides crisis mode detection, automatic switching, and simplified interface patterns * for therapeutic components in high-stress or overwhelmed states. */ export interface CrisisMode { enabled: boolean; severity: 'mild' | 'moderate' | 'severe'; triggers: CrisisTrigger[]; adaptations: CrisisAdaptation[]; timestamp: Date; } export interface CrisisTrigger { type: 'user-reported' | 'behavioral' | 'biometric' | 'time-based' | 'external'; value: any; confidence: number; timestamp: Date; } export interface CrisisAdaptation { componentType: string; adaptation: 'simplify' | 'hide' | 'emphasize' | 'redirect'; parameters: Record<string, any>; } export interface CrisisModeConfig { autoDetect: boolean; userOverride: boolean; adaptationLevel: 'minimal' | 'moderate' | 'maximum'; timeoutMinutes: number; emergencyContacts: boolean; } /** * Crisis mode detection patterns */ export declare const crisisDetectionPatterns: { rapidClicking: (clickCount: number, timeWindow: number) => boolean; taskSwitching: (switchCount: number, timeWindow: number) => boolean; errorRepeating: (errorCount: number, timeWindow: number) => boolean; hesitationPattern: (hoverTime: number, clickDelay: number) => boolean; abandonmentPattern: (partialInputs: number, timeWindow: number) => boolean; lateNightUsage: () => boolean; keyboardMashing: (keyPressRate: number) => boolean; mouseShaking: (movementVariance: number) => boolean; }; /** * Activate crisis mode with specified trigger */ export declare function activateCrisisMode(trigger: CrisisTrigger, severity?: CrisisMode['severity']): void; /** * Deactivate crisis mode */ export declare function deactivateCrisisMode(reason?: 'user' | 'timeout' | 'external'): void; /** * Check if crisis mode is currently active */ export declare function isCrisisModeActive(): boolean; /** * Get current crisis mode severity */ export declare function getCrisisModeSeverity(): CrisisMode['severity'] | null; /** * Get crisis mode state (reactive) */ export declare function getCrisisModeState(): CrisisMode; /** * Update crisis mode configuration */ export declare function updateCrisisConfig(newConfig: Partial<CrisisModeConfig>): void; /** * Monitor behavioral patterns for crisis detection */ export declare function monitorBehavioralPatterns(): void; /** * Get crisis mode adaptations for a specific component type */ export declare function getAdaptationsForComponent(componentType: string): CrisisAdaptation[]; /** * Apply crisis mode styles to component */ export declare function applyCrisisModeStyles(baseClasses: string, componentType: string): string; /** * Check if a component should be shown in crisis mode */ export declare function shouldShowInCrisisMode(componentType: string, importance?: 'essential' | 'important' | 'optional'): boolean; /** * Get simplified options for crisis mode */ export declare function getSimplifiedOptions<T>(options: T[], componentType: string): T[]; /** * Manual crisis mode toggle for user control */ export declare function toggleCrisisMode(): void; /** * Report user crisis state */ export declare function reportCrisisState(severity: CrisisMode['severity'], userInput?: string): void; /** * Initialize crisis mode monitoring */ export declare function initializeCrisisMode(config?: Partial<CrisisModeConfig>): void; /** * Crisis mode CSS classes that should be added to global styles */ export declare const crisisModeCSSClasses = "\n .ck-crisis-simple {\n --ck-space: 1.5;\n --ck-text-scale: 1.2;\n --ck-shadow: none;\n --ck-radius: 0.25rem;\n }\n \n .ck-crisis-large-text {\n --ck-text-scale: 1.4;\n font-weight: var(--ck-font-medium);\n }\n \n .ck-crisis-high-contrast {\n --ck-bg-primary: #ffffff;\n --ck-bg-secondary: #f8f9fa;\n --ck-text-primary: #000000;\n --ck-border: #333333;\n }\n \n .ck-crisis-hidden {\n display: none !important;\n }\n \n .ck-crisis-emphasized {\n border: 2px solid var(--ck-accent);\n background: color-mix(in srgb, var(--ck-accent) 10%, transparent);\n box-shadow: 0 0 0 4px color-mix(in srgb, var(--ck-accent) 20%, transparent);\n }\n \n .ck-crisis-calming {\n --ck-accent: #4ecdc4;\n --ck-success: #45b7aa;\n --ck-bg-secondary: color-mix(in srgb, #4ecdc4 5%, transparent);\n }\n \n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n"; //# sourceMappingURL=crisis-mode.d.ts.map