UNPKG

sicua

Version:

A tool for analyzing project structure and dependencies

105 lines (104 loc) 3.25 kB
/** * Enhanced text content extractor for JSX elements * Handles complex patterns like conditional rendering, variables, and nested elements */ import { JSXElementInfo } from "../types/accessibilityTypes"; export declare class TextContentExtractor { /** * Extracts accessible text content from JSX elements * Handles conditional rendering, variables, nested text, and ARIA labeling */ static extractAccessibleText(element: JSXElementInfo): string | null; /** * Extracts text from ARIA labeling attributes */ private static extractAriaText; /** * Extracts text from title attribute */ private static extractTitleText; /** * Extracts text content from element's children and text content */ private static extractContentText; /** * Extracts text from JSX prop values handling different types */ private static extractTextFromProp; /** * Recursively extracts text from child elements */ private static extractTextFromChildren; /** * Extracts text from JSX expressions in props or children */ private static extractTextFromExpressions; /** * Extracts text from JSX expression strings * Handles conditional rendering, variables, and template literals */ private static extractTextFromExpression; /** * Checks if a string is a string literal */ private static isStringLiteral; /** * Extracts text from string literals */ private static extractStringLiteral; /** * Extracts text from conditional expressions (ternary) * Pattern: condition ? "text1" : "text2" */ private static extractTextFromConditional; /** * Extracts text from logical expressions * Pattern: condition && "text" or condition || "text" */ private static extractTextFromLogical; /** * Extracts text from template literals */ private static extractTextFromTemplate; /** * Extracts text from variable references * Handles common variable names that likely contain text */ private static extractTextFromVariable; /** * Checks if an element is non-text (decorative, hidden, etc.) */ private static isNonTextElement; /** * Checks if an element has any form of accessible text */ static hasAccessibleText(element: JSXElementInfo): boolean; /** * Checks if an element likely has text but we can't extract it statically */ static likelyHasText(element: JSXElementInfo): boolean; /** * Check for JSX expressions that likely contain text */ private static hasJSXExpressionText; /** * Analyze JSX context string for text expressions */ private static analyzeJSXContext; /** * Analyze children for JSX expressions that contain text */ private static analyzeChildrenForExpressions; /** * Check if element has props that indicate text content */ private static hasTextIndicatingProps; /** * Enhanced text expression detection */ private static isTextExpression; /** * Check if element is decorative (enhanced version) */ private static isDecorativeElement; }