@birhaus/tools
Version:
BIRHAUS Developer Tools - CognitiveLoadMeter, linting rules, and validation tools
138 lines (133 loc) • 5.2 kB
text/typescript
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 };