UNPKG

@birhaus/tools

Version:

BIRHAUS Developer Tools - CognitiveLoadMeter, linting rules, and validation tools

138 lines (133 loc) 5.2 kB
import * as react_jsx_runtime from 'react/jsx-runtime'; import { Rule } from 'eslint'; interface CognitiveLoadMetrics { navigationItems: number; formFields: number; choiceOptions: number; colorCount: number; fontVariations: number; visualLayers: number; textDensity: number; actionDensity: number; interactionComplexity: number; contrastIssues: number; missingAltText: number; keyboardNavigation: boolean; spanishLabelCoverage: number; bilingualSupport: boolean; undoPatternUsage: number; confirmationDialogs: number; progressiveDisclosure: number; } interface CognitiveLoadAnalysis { score: number; level: 'low' | 'medium' | 'high' | 'critical'; violations: CognitiveViolation[]; suggestions: CognitiveSuggestion[]; metrics: CognitiveLoadMetrics; } interface CognitiveViolation { id: string; type: 'miller-law' | 'visual-complexity' | 'accessibility' | 'birhaus-principle'; severity: 'low' | 'medium' | 'high' | 'critical'; messageEs: string; messageEn?: string; element?: Element; birhausPrinciple?: number; } interface CognitiveSuggestion { id: string; priority: 'low' | 'medium' | 'high'; actionEs: string; actionEn?: string; estimatedImpact: number; birhausPrinciple?: number; } interface CognitiveLoadMeterProps { _targetSelector?: string; targetElement?: Element; enableRealTimeAnalysis?: boolean; analysisInterval?: number; position?: 'top-right' | 'bottom-right' | 'bottom-left' | 'top-left' | 'floating'; minimized?: boolean; showDetails?: boolean; showOnlyViolations?: boolean; minSeverity?: 'low' | 'medium' | 'high' | 'critical'; onAnalysisComplete?: (analysis: CognitiveLoadAnalysis) => void; onViolationDetected?: (violation: CognitiveViolation) => void; className?: string; } declare function CognitiveLoadMeter({ _targetSelector, // Not used in current implementation targetElement, enableRealTimeAnalysis, analysisInterval, position, minimized: initialMinimized, showDetails, showOnlyViolations, minSeverity, onAnalysisComplete, onViolationDetected, className }: CognitiveLoadMeterProps): react_jsx_runtime.JSX.Element; declare function useCognitiveLoadAnalysis(_targetSelector?: string): { analysis: CognitiveLoadAnalysis | null; isAnalyzing: boolean; runAnalysis: () => void; }; /** * BIRHAUS ESLint Plugin * * ESLint rules to enforce BIRHAUS design principles in React/TypeScript code: * - Miller's Law compliance (max 7 navigation items, form fields) * - Spanish-first labeling requirements * - Undo-over-confirm pattern enforcement * - Accessibility compliance checks * - Cognitive load reduction */ interface BirhausLinterOptions { maxNavigationItems?: number; maxFormFields?: number; maxSelectOptions?: number; requireSpanishLabels?: boolean; spanishLabelSuffix?: string; forbidConfirmationDialogs?: boolean; requireUndoPattern?: boolean; requireAltText?: boolean; requireAriaLabels?: boolean; maxActionsPerView?: number; maxColorsPerComponent?: number; } declare const millerLawNavigationRule: Rule.RuleModule; declare const spanishFirstLabelsRule: Rule.RuleModule; declare const forbidConfirmationDialogsRule: Rule.RuleModule; declare const formFieldLimitsRule: Rule.RuleModule; declare const accessibilityRequirementsRule: Rule.RuleModule; declare const birhausRules: { 'miller-law-navigation': Rule.RuleModule; 'spanish-first-labels': Rule.RuleModule; 'forbid-confirmation-dialogs': Rule.RuleModule; 'form-field-limits': Rule.RuleModule; 'accessibility-requirements': Rule.RuleModule; }; declare const birhausPlugin: { rules: { 'miller-law-navigation': Rule.RuleModule; 'spanish-first-labels': Rule.RuleModule; 'forbid-confirmation-dialogs': Rule.RuleModule; 'form-field-limits': Rule.RuleModule; 'accessibility-requirements': Rule.RuleModule; }; configs: { recommended: { plugins: string[]; rules: { '@birhaus/miller-law-navigation': string; '@birhaus/spanish-first-labels': string; '@birhaus/forbid-confirmation-dialogs': string; '@birhaus/form-field-limits': string; '@birhaus/accessibility-requirements': string; }; }; strict: { plugins: string[]; rules: { '@birhaus/miller-law-navigation': string; '@birhaus/spanish-first-labels': string; '@birhaus/forbid-confirmation-dialogs': string; '@birhaus/form-field-limits': string; '@birhaus/accessibility-requirements': string; }; }; }; }; export { type BirhausLinterOptions, type CognitiveLoadAnalysis, CognitiveLoadMeter, type CognitiveLoadMeterProps, type CognitiveLoadMetrics, type CognitiveSuggestion, type CognitiveViolation, accessibilityRequirementsRule, birhausPlugin, birhausRules, forbidConfirmationDialogsRule, formFieldLimitsRule, millerLawNavigationRule, spanishFirstLabelsRule, useCognitiveLoadAnalysis };