diff --git a/react-motion-slider/react-motion-slider-tests.tsx b/react-motion-slider/react-motion-slider-tests.tsx new file mode 100644 index 0000000000..b51f57fc3b --- /dev/null +++ b/react-motion-slider/react-motion-slider-tests.tsx @@ -0,0 +1,28 @@ +/// +/// + +import * as React from "react"; +import Slider from "react-motion-slider"; + +class Test extends React.Component<{}, {}> { + protected slider: Slider; + + public render() { + return ( +
+ this.slider = ref} + > +
+
+ +
+ ); + } + + protected onMouseEnter(): void { + this.slider.next(); + } +} diff --git a/react-motion-slider/react-motion-slider.d.ts b/react-motion-slider/react-motion-slider.d.ts new file mode 100644 index 0000000000..939500150d --- /dev/null +++ b/react-motion-slider/react-motion-slider.d.ts @@ -0,0 +1,85 @@ +// Type definitions for react-motion-slider 0.4.1 +// Project: https://github.com/souporserious/react-motion-slider +// Definitions by: Alexey Svetliakov +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// +/// + + +declare module "react-motion-slider" { + import * as React from "react"; + import { OpaqueConfig } from "react-motion"; + + export interface SliderProps { + /** + * Move to a slide by its key. + */ + currentKey?: string | number; + /** + * Move to a slide by its index. + */ + currentIndex?: number; + /** + * The amount of slides shown in view + * @default 1 + */ + slidesToShow?: number; + /** + * The amount of slides to move upon using prev and next methods. + * @default 1 + */ + slidesToMove?: number; + /** + * Animates the wrapper height to fit the current slide. + * @default false + */ + autoHeight?: boolean; + /** + * Offsets the slide to align either left, center, or right. + * @default "left" + */ + align?: "left" | "center" | "right"; + /** + * Enable touch and/or mouse dragging + * @default true + */ + swipe?: boolean | "touch" | "mouse"; + /** + * The amount the user must swipe to advance slides. (sliderWidth * swipeThreshold) + * @default 0.5 + */ + swipeThreshold?: number; + /** + * The amount of time in milliseconds that determines if a swipe was a flick or not. + */ + flickTimeout?: number; + /** + * Accepts a React Motion spring config. + */ + springConfig?: OpaqueConfig; + /** + * Prop callback fired before slide change. + * @param currentIndex + * @param nextIndex + */ + beforeSlide?: (currentIndex: number, nextIndex: number) => void; + /** + * Prop callback fired after slide change. + * @param currentIndex + */ + afterSlide?: (currentIndex: number) => void; + } + + export default class Slider extends React.Component { + /** + * Moves to next slide + */ + public next(): void; + + /** + * Move to previous slide + */ + public prev(): void; + } +}