radix-vue
Version:
Vue port for Radix UI Primitives.
80 lines (79 loc) • 3.3 kB
TypeScript
export interface SliderOrientationPrivateProps {
min: number;
max: number;
inverted: boolean;
}
export type SliderOrientationPrivateEmits = {
'slideEnd': [];
'slideStart': [value: number];
'slideMove': [value: number];
'homeKeyDown': [event: KeyboardEvent];
'endKeyDown': [event: KeyboardEvent];
'stepKeyDown': [event: KeyboardEvent, direction: number];
};
/**
* Clamps a value within a specified range.
*
* @param {number} value - The value to be clamped.
* @param {[number, number]} range - An array containing the minimum and maximum values of the range.
* @returns {number} The clamped value within the specified range.
*/
export declare function clamp(value: number, [min, max]: [number, number]): number;
export declare function getNextSortedValues(prevValues: number[] | undefined, nextValue: number, atIndex: number): number[];
export declare function convertValueToPercentage(value: number, min: number, max: number): number;
/**
* Returns a label for each thumb when there are two or more thumbs
*/
export declare function getLabel(index: number, totalValues: number): string | undefined;
/**
* Given a `values` array and a `nextValue`, determine which value in
* the array is closest to `nextValue` and return its index.
*
* @example
* // returns 1
* getClosestValueIndex([10, 30], 25);
*/
export declare function getClosestValueIndex(values: number[], nextValue: number): number;
/**
* Offsets the thumb centre point while sliding to ensure it remains
* within the bounds of the slider when reaching the edges
*/
export declare function getThumbInBoundsOffset(width: number, left: number, direction: number): number;
/**
* Gets an array of steps between each value.
*
* @example
* // returns [1, 9]
* getStepsBetweenValues([10, 11, 20]);
*/
export declare function getStepsBetweenValues(values: number[]): number[];
/**
* Verifies the minimum steps between all values is greater than or equal
* to the expected minimum steps.
*
* @example
* // returns false
* hasMinStepsBetweenValues([1,2,3], 2);
*
* @example
* // returns true
* hasMinStepsBetweenValues([1,2,3], 1);
*/
export declare function hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number): boolean;
export declare function linearScale(input: readonly [number, number], output: readonly [number, number]): (value: number) => number;
export declare function getDecimalCount(value: number): number;
export declare function roundValue(value: number, decimalCount: number): number;
export type Direction = 'ltr' | 'rtl';
export declare const PAGE_KEYS: string[];
export declare const ARROW_KEYS: string[];
type SlideDirection = 'from-left' | 'from-right' | 'from-bottom' | 'from-top';
export declare const BACK_KEYS: Record<SlideDirection, string[]>;
type Side = 'top' | 'right' | 'bottom' | 'left';
interface SliderOrientation {
startEdge: Side;
endEdge: Side;
size: 'width' | 'height';
direction: number;
}
export declare const injectSliderOrientationContext: <T extends SliderOrientation | null | undefined = SliderOrientation>(fallback?: T | undefined) => T extends null ? SliderOrientation | null : SliderOrientation, provideSliderOrientationContext: (contextValue: SliderOrientation) => SliderOrientation;
export {};