UNPKG

watercolor-ui

Version:

A modern minimalist cross-framework component library

197 lines 6.6 kB
/** * Clamp a value between min and max * @param {number} value - Value to clamp * @param {number} min - Minimum value * @param {number} max - Maximum value * @returns {number} Clamped value */ export function clamp(value: number, min: number, max: number): number; /** * Calculate percentage from value * @param {number} value - Current value * @param {number} min - Minimum value * @param {number} max - Maximum value * @returns {number} Percentage (0-100) */ export function valueToPercentage(value: number, min: number, max: number): number; /** * Calculate value from percentage * @param {number} percentage - Percentage (0-100) * @param {number} min - Minimum value * @param {number} max - Maximum value * @returns {number} Calculated value */ export function percentageToValue(percentage: number, min: number, max: number): number; /** * Round value to nearest step * @param {number} value - Value to round * @param {number} step - Step size * @param {number} min - Minimum value * @returns {number} Rounded value */ export function roundToStep(value: number, step: number, min?: number): number; /** * Get closest valid value * @param {number} value - Input value * @param {number} min - Minimum value * @param {number} max - Maximum value * @param {number} step - Step size * @returns {number} Valid value */ export function getValidValue(value: number, min: number, max: number, step?: number): number; /** * Calculate position from mouse/touch event * @param {Event} event - Mouse or touch event * @param {Element} element - Slider track element * @param {string} orientation - Slider orientation * @returns {number} Position percentage (0-100) */ export function getPositionFromEvent(event: Event, element: Element, orientation?: string): number; /** * Calculate thumb position from value * @param {number} value - Current value * @param {number} min - Minimum value * @param {number} max - Maximum value * @param {string} orientation - Slider orientation * @returns {Object} Position styles */ export function getThumbPosition(value: number, min: number, max: number, orientation?: string): Object; /** * Calculate track fill position for range slider * @param {number} startValue - Start value * @param {number} endValue - End value * @param {number} min - Minimum value * @param {number} max - Maximum value * @param {string} orientation - Slider orientation * @returns {Object} Track fill styles */ export function getRangeTrackPosition(startValue: number, endValue: number, min: number, max: number, orientation?: string): Object; /** * Handle keyboard navigation * @param {Event} event - Keyboard event * @param {number} value - Current value * @param {Object} config - Slider configuration * @returns {number|null} New value or null if no change */ export function handleKeyboardNavigation(event: Event, value: number, config?: Object): number | null; /** * Generate marks for slider * @param {number} min - Minimum value * @param {number} max - Maximum value * @param {number|Array} marks - Mark configuration * @returns {Array} Array of mark objects */ export function generateMarks(min: number, max: number, marks: number | any[]): any[]; /** * Get mark position * @param {number} value - Mark value * @param {number} min - Minimum value * @param {number} max - Maximum value * @param {string} orientation - Slider orientation * @returns {Object} Position styles */ export function getMarkPosition(value: number, min: number, max: number, orientation?: string): Object; /** * Format value for display * @param {number} value - Value to format * @param {Object} config - Formatting configuration * @returns {string} Formatted value */ export function formatValue(value: number, config?: Object): string; /** * Parse string value to number * @param {string} value - String value * @param {number} fallback - Fallback value * @returns {number} Parsed number */ export function parseValue(value: string, fallback?: number): number; /** * Create drag handler for slider thumb * @param {Object} config - Drag configuration * @returns {Object} Drag handlers */ export function createDragHandler(config?: Object): Object; /** * Generate class names for slider * @param {Object} props - Component props * @returns {string} Class names */ export function getSliderClasses(props?: Object): string; /** * Generate class names for thumb * @param {Object} props - Thumb props * @returns {string} Class names */ export function getThumbClasses(props?: Object): string; /** * Validate slider configuration * @param {Object} config - Slider configuration * @returns {Object} Validation result */ export function validateConfig(config?: Object): Object; /** * Generate ARIA attributes for slider * @param {Object} props - Component props * @returns {Object} ARIA attributes */ export function getAriaAttributes(props?: Object): Object; /** * Throttle function for drag events * @param {Function} func - Function to throttle * @param {number} delay - Throttle delay in milliseconds * @returns {Function} Throttled function */ export function throttle(func: Function, delay?: number): Function; export namespace SLIDER_ORIENTATIONS { let horizontal: string; let vertical: string; } export namespace SLIDER_SIZES { let sm: string; let md: string; let lg: string; } export namespace SLIDER_COLORS { let primary: string; let secondary: string; let success: string; let warning: string; let error: string; } export namespace KEY_CODES { let ARROW_LEFT: number; let ARROW_UP: number; let ARROW_RIGHT: number; let ARROW_DOWN: number; let HOME: number; let END: number; let PAGE_UP: number; let PAGE_DOWN: number; } declare namespace _default { export { SLIDER_ORIENTATIONS }; export { SLIDER_SIZES }; export { SLIDER_COLORS }; export { KEY_CODES }; export { clamp }; export { valueToPercentage }; export { percentageToValue }; export { roundToStep }; export { getValidValue }; export { getPositionFromEvent }; export { getThumbPosition }; export { getRangeTrackPosition }; export { handleKeyboardNavigation }; export { generateMarks }; export { getMarkPosition }; export { formatValue }; export { parseValue }; export { createDragHandler }; export { getSliderClasses }; export { getThumbClasses }; export { validateConfig }; export { getAriaAttributes }; export { throttle }; } export default _default; //# sourceMappingURL=utils.d.ts.map