86 lines
3.5 KiB
TypeScript
86 lines
3.5 KiB
TypeScript
import * as React from 'react';
|
|
import { Primitive } from '@radix-ui/react-primitive';
|
|
|
|
type Scope<C = any> = {
|
|
[scopeName: string]: React.Context<C>[];
|
|
} | undefined;
|
|
type ScopeHook = (scope: Scope) => {
|
|
[__scopeProp: string]: Scope;
|
|
};
|
|
interface CreateScope {
|
|
scopeName: string;
|
|
(): ScopeHook;
|
|
}
|
|
|
|
type Direction = 'ltr' | 'rtl';
|
|
declare const createSliderScope: CreateScope;
|
|
interface SliderProps extends Omit<SliderHorizontalProps | SliderVerticalProps, keyof SliderOrientationPrivateProps | 'defaultValue'> {
|
|
name?: string;
|
|
disabled?: boolean;
|
|
orientation?: React.AriaAttributes['aria-orientation'];
|
|
dir?: Direction;
|
|
min?: number;
|
|
max?: number;
|
|
step?: number;
|
|
minStepsBetweenThumbs?: number;
|
|
value?: number[];
|
|
defaultValue?: number[];
|
|
onValueChange?(value: number[]): void;
|
|
onValueCommit?(value: number[]): void;
|
|
inverted?: boolean;
|
|
form?: string;
|
|
}
|
|
declare const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLSpanElement>>;
|
|
type SliderOrientationPrivateProps = {
|
|
min: number;
|
|
max: number;
|
|
inverted: boolean;
|
|
onSlideStart?(value: number): void;
|
|
onSlideMove?(value: number): void;
|
|
onSlideEnd?(): void;
|
|
onHomeKeyDown(event: React.KeyboardEvent): void;
|
|
onEndKeyDown(event: React.KeyboardEvent): void;
|
|
onStepKeyDown(step: {
|
|
event: React.KeyboardEvent;
|
|
direction: number;
|
|
}): void;
|
|
};
|
|
interface SliderOrientationProps extends Omit<SliderImplProps, keyof SliderImplPrivateProps>, SliderOrientationPrivateProps {
|
|
}
|
|
interface SliderHorizontalProps extends SliderOrientationProps {
|
|
dir?: Direction;
|
|
}
|
|
interface SliderVerticalProps extends SliderOrientationProps {
|
|
}
|
|
type PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;
|
|
type SliderImplPrivateProps = {
|
|
onSlideStart(event: React.PointerEvent): void;
|
|
onSlideMove(event: React.PointerEvent): void;
|
|
onSlideEnd(event: React.PointerEvent): void;
|
|
onHomeKeyDown(event: React.KeyboardEvent): void;
|
|
onEndKeyDown(event: React.KeyboardEvent): void;
|
|
onStepKeyDown(event: React.KeyboardEvent): void;
|
|
};
|
|
interface SliderImplProps extends PrimitiveDivProps, SliderImplPrivateProps {
|
|
}
|
|
type PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;
|
|
interface SliderTrackProps extends PrimitiveSpanProps {
|
|
}
|
|
declare const SliderTrack: React.ForwardRefExoticComponent<SliderTrackProps & React.RefAttributes<HTMLSpanElement>>;
|
|
interface SliderRangeProps extends PrimitiveSpanProps {
|
|
}
|
|
declare const SliderRange: React.ForwardRefExoticComponent<SliderRangeProps & React.RefAttributes<HTMLSpanElement>>;
|
|
interface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {
|
|
}
|
|
declare const SliderThumb: React.ForwardRefExoticComponent<SliderThumbProps & React.RefAttributes<HTMLSpanElement>>;
|
|
interface SliderThumbImplProps extends PrimitiveSpanProps {
|
|
index: number;
|
|
name?: string;
|
|
}
|
|
declare const Root: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLSpanElement>>;
|
|
declare const Track: React.ForwardRefExoticComponent<SliderTrackProps & React.RefAttributes<HTMLSpanElement>>;
|
|
declare const Range: React.ForwardRefExoticComponent<SliderRangeProps & React.RefAttributes<HTMLSpanElement>>;
|
|
declare const Thumb: React.ForwardRefExoticComponent<SliderThumbProps & React.RefAttributes<HTMLSpanElement>>;
|
|
|
|
export { Range, Root, Slider, type SliderProps, SliderRange, type SliderRangeProps, SliderThumb, type SliderThumbProps, SliderTrack, type SliderTrackProps, Thumb, Track, createSliderScope };
|