@reusable-ui/range
Version:
A UI for the user defines a numeric value in the specified range.
37 lines (36 loc) • 2.23 kB
TypeScript
import { default as React } from 'react';
import type { Optional } from '@cssfn/core';
import { type OrientationableProps } from '@reusable-ui/core';
import { GenericProps } from '@reusable-ui/generic';
import { EditableControlProps } from '@reusable-ui/editable-control';
import { EditableActionControlProps } from '@reusable-ui/editable-action-control';
import type { InputHTMLAttributes } from '@reusable-ui/input';
export declare const useRangeStyleSheet: () => import("@cssfn/css-types").CssScopeMap<"main">;
export interface RangeSubComponentProps {
trackComponent?: React.ReactComponentElement<any, EditableControlProps<Element>>;
trackLowerComponent?: React.ReactComponentElement<any, GenericProps<Element>>;
trackUpperComponent?: React.ReactComponentElement<any, GenericProps<Element>>;
thumbComponent?: React.ReactComponentElement<any, EditableActionControlProps<Element>>;
trackRef?: React.Ref<Element>;
trackLowerRef?: React.Ref<Element>;
trackUpperRef?: React.Ref<Element>;
thumbRef?: React.Ref<Element>;
trackClasses?: Optional<string>[];
trackLowerClasses?: Optional<string>[];
trackUpperClasses?: Optional<string>[];
thumbClasses?: Optional<string>[];
trackStyle?: React.CSSProperties;
trackLowerStyle?: React.CSSProperties;
trackUpperStyle?: React.CSSProperties;
thumbStyle?: React.CSSProperties;
}
export interface RangeProps<TElement extends Element = HTMLDivElement> extends Omit<EditableActionControlProps<TElement>, 'elmRef' | 'defaultValue' | 'value' | 'onChange' | 'required' | 'children'>, Pick<EditableActionControlProps<HTMLInputElement>, 'elmRef' | 'onChange'>, Omit<InputHTMLAttributes<TElement>, 'role' | 'size' | 'enterKeyHint' | 'disabled' | 'required' | 'minLength' | 'maxLength' | 'pattern' | 'type' | 'placeholder' | 'autoComplete' | 'autoCapitalize' | 'list' | 'defaultValue' | 'value'>, OrientationableProps, RangeSubComponentProps {
min?: number;
max?: number;
step?: number | 'any';
defaultValue?: number;
value?: number;
}
declare const Range: <TElement extends Element = HTMLDivElement>(props: RangeProps<TElement>) => JSX.Element | null;
export { Range, // named export for readibility
Range as default, };