watercolor-ui
Version:
A modern minimalist cross-framework component library
149 lines • 5.05 kB
TypeScript
/**
* 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