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