UNPKG

watercolor-ui

Version:

A modern minimalist cross-framework component library

149 lines 5.05 kB
/** * Normalize options to a consistent format * @param {Array} options - Array of options * @returns {Array} Normalized options */ export function normalizeOptions(options?: any[]): any[]; /** * Group options by their group property * @param {Array} options - Array of normalized options * @returns {Array} Grouped options */ export function groupOptions(options?: any[]): any[]; /** * Filter options based on search query * @param {Array} options - Array of options * @param {string} query - Search query * @param {Object} config - Filter configuration * @returns {Array} Filtered options */ export function filterOptions(options?: any[], query?: string, config?: Object): any[]; /** * Highlight matching text in a string * @param {string} text - Text to highlight * @param {string} query - Search query * @param {boolean} caseSensitive - Case sensitive search * @returns {string} Text with highlighted matches */ export function highlightText(text: string, query: string, caseSensitive?: boolean): string; /** * Handle single selection * @param {*} value - Selected value * @param {*} currentValue - Current selected value * @returns {*} New selected value */ export function handleSingleSelection(value: any, currentValue: any): any; /** * Handle multiple selection * @param {*} value - Value to toggle * @param {Array} currentValues - Current selected values * @param {Object} config - Selection configuration * @returns {Array} New selected values */ export function handleMultipleSelection(value: any, currentValues?: any[], config?: Object): any[]; /** * Remove a value from multiple selection * @param {*} value - Value to remove * @param {Array} currentValues - Current selected values * @returns {Array} New selected values */ export function removeFromSelection(value: any, currentValues?: any[]): any[]; /** * Handle keyboard navigation in options list * @param {Event} event - Keyboard event * @param {Array} options - Array of options * @param {number} currentIndex - Current focused index * @param {Object} config - Navigation configuration * @returns {Object} Navigation result */ export function handleKeyboardNavigation(event: Event, options?: any[], currentIndex?: number, config?: Object): Object; /** * Generate class names for select container * @param {Object} props - Component props * @returns {string} Class names */ export function getSelectClasses(props?: Object): string; /** * Generate class names for select container * @param {Object} props - Component props * @returns {string} Class names */ export function getContainerClasses(props?: Object): string; /** * Generate class names for option * @param {Object} option - Option object * @param {boolean} selected - Is selected * @param {boolean} focused - Is focused * @returns {string} Class names */ export function getOptionClasses(option?: Object, selected?: boolean, focused?: boolean): string; /** * Validate select value * @param {*} value - Value to validate * @param {Array} options - Available options * @param {Object} rules - Validation rules * @returns {Object} Validation result */ export function validateValue(value: any, options?: any[], rules?: Object): Object; /** * Generate ARIA attributes for select * @param {Object} props - Component props * @returns {Object} ARIA attributes */ export function getAriaAttributes(props?: Object): Object; /** * Debounce function for search input * @param {Function} func - Function to debounce * @param {number} delay - Delay in milliseconds * @returns {Function} Debounced function */ export function debounce(func: Function, delay?: number): Function; /** * Virtual scrolling helper for large option lists * @param {Array} options - All options * @param {Object} viewport - Viewport configuration * @returns {Object} Virtual scrolling data */ export function getVirtualScrollData(options?: any[], viewport?: Object): Object; export namespace SELECT_SIZES { let sm: string; let md: string; let lg: string; } export namespace SELECT_VARIANTS { let outlined: string; let filled: string; let standard: string; } export namespace KEY_CODES { let ENTER: number; let ESCAPE: number; let SPACE: number; let ARROW_UP: number; let ARROW_DOWN: number; let HOME: number; let END: number; let TAB: number; } declare namespace _default { export { SELECT_SIZES }; export { SELECT_VARIANTS }; export { KEY_CODES }; export { normalizeOptions }; export { groupOptions }; export { filterOptions }; export { highlightText }; export { handleSingleSelection }; export { handleMultipleSelection }; export { removeFromSelection }; export { handleKeyboardNavigation }; export { getSelectClasses }; export { getContainerClasses }; export { getOptionClasses }; export { validateValue }; export { getAriaAttributes }; export { debounce }; export { getVirtualScrollData }; } export default _default; //# sourceMappingURL=utils.d.ts.map