@react-md/form
Version:
This package is for creating all the different form input types.
41 lines (40 loc) • 1.71 kB
TypeScript
import type { KeyboardEventHandler, MouseEventHandler, FocusEventHandler, Ref, RefCallback, TouchEventHandler } from "react";
import type { DefinedSliderValueOptions, SliderEventHandlers, SliderPresentation, SliderThumbIndex } from "./types";
import type { CombinedSliderControls } from "./utils";
/**
* @internal
* @remarks \@since 2.5.0
*/
export declare type SliderControlsOptions = CombinedSliderControls & SliderPresentation & SliderEventHandlers & DefinedSliderValueOptions & {
ref?: Ref<HTMLSpanElement | null>;
thumb1Ref?: Ref<HTMLSpanElement | null>;
thumb2Ref?: Ref<HTMLSpanElement | null>;
animationDuration?: number;
};
/**
* @internal
* @remarks \@since 2.5.0
*/
export interface SliderAndRangeSliderControls {
thumb1Ref: RefCallback<HTMLSpanElement | null>;
thumb1Value: number;
thumb1Percentage: string;
thumb2Ref: RefCallback<HTMLSpanElement | null>;
thumb2Value?: number;
thumb2Percentage?: string;
dragging: boolean;
draggingIndex: SliderThumbIndex;
ref: RefCallback<HTMLSpanElement | null>;
onBlur: FocusEventHandler<HTMLSpanElement>;
onKeyDown: KeyboardEventHandler<HTMLSpanElement>;
onMouseDown: MouseEventHandler<HTMLSpanElement>;
onTouchStart: TouchEventHandler<HTMLSpanElement>;
}
/**
* This hook provides all the logic for updating the slider's when the user
* interacts with the slider.
*
* @internal
* @remarks \@since 2.5.0
*/
export declare function useSliderControls({ ref, thumb1Ref: propThumb1Ref, thumb2Ref: propThumb2Ref, min, max, step, disabled, vertical, onBlur, onKeyDown, onMouseDown, onTouchStart, animationDuration, ...controls }: SliderControlsOptions): SliderAndRangeSliderControls;