UNPKG

amotify

Version:

UI Component for React,NextJS,esbuild

61 lines (60 loc) 2.07 kB
/// <reference types="react" /> import { ReactElement, Themecolor } from '../../@declares'; import { InputTypes } from '.'; declare namespace Slider { type Size = 'small' | 'medium' | 'large'; namespace Input { type Base = React.DOMAttributes<HTMLInputElement> & { tabIndex?: number; id?: string; discreteScale?: boolean; size?: Size; disabled?: boolean; value?: number | [number, number]; color?: Color; /** * default min */ trackMin?: number; min: number; max: number; step: number; legends?: boolean; onLegendRender?: LegendsCallback; }; type Single = Base & InputTypes.CoreInput<number> & { ranged?: false; }; type Range = Base & InputTypes.CoreInput<number[]> & { ranged: true; }; } type Input = Input.Single | Input.Range; type Color = Themecolor | 'theme' | 'posi' | 'nega' | 'warn'; type LegendsCallback = { (value: number): ReactElement; }; type NormalizedData = { value: number; offsetLeft: number; }; namespace Methods { type Component = { (p: Slider.Input): React.JSX.Element; }; type FNs = { Small(props: Slider.Input): React.JSX.Element; Medium(props: Slider.Input): React.JSX.Element; Large(props: Slider.Input): React.JSX.Element; Range: { (props: Omit<Slider.Input.Range, 'ranged'>): React.JSX.Element; Small(props: Omit<Slider.Input.Range, 'ranged'>): React.JSX.Element; Medium(props: Omit<Slider.Input.Range, 'ranged'>): React.JSX.Element; Large(props: Omit<Slider.Input.Range, 'ranged'>): React.JSX.Element; }; }; } type Methods = Methods.Component & Methods.FNs; } declare const Slider: Slider.Methods; export { Slider, Slider as default };