censa_front_end_library
Version:
React components library project for censa Design System
1,654 lines (1,651 loc) • 84.3 kB
TypeScript
// Type definitions for types x.x
// Project: https://github.com/baz/foo (Does not have to be to GitHub, but prefer linking to a source code repository rather than to a project website.)
// Definitions by: SaniyaGupta <https://github.com/me>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/// <reference types="jest" />
/// <reference types="node" />
/// <reference types="prop-types" />
/// <reference types="scheduler" />
/// <reference types="throttle-debounce" />
/// <reference types="webpack-env" />
import * as React from 'react';
export declare type SingleOrArray<T> = T | T[];
export declare type MakeOptional<T extends {}, K extends keyof any> = Omit<T, K> & {
[OK in keyof T & K]?: T[OK];
};
export declare type ValidatorFn<K extends any[] = any[]> = (...values: K) => boolean;
export declare type Validators = SingleOrArray<ValidatorFn>;
export declare type Mask = (string | RegExp)[];
export declare type BaseProps = {
className?: string;
'data-test'?: string;
};
export declare type BaseHtmlProps<T> = Omit<React.HTMLProps<T>, 'ref' | 'size' | 'className'>;
export declare type OmitNativeProps<T, K extends keyof any> = Omit<BaseHtmlProps<T>, K>;
export interface OverlayFooterProps extends BaseProps {
open?: boolean;
children?: React.ReactNode;
actions?: ButtonProps[];
}
export declare type AccentAppearance =
| 'primary'
| 'secondary'
| 'alert'
| 'warning'
| 'success'
| 'accent1'
| 'accent2'
| 'accent3'
| 'accent4';
export declare type HeadingAppearance = 'default' | 'subtle' | 'disabled' | 'white';
export declare type MessageAppearance = 'default' | 'alert' | 'info' | 'success' | 'warning';
export declare type FileStatus = 'uploading' | 'completed' | 'error';
export declare type FooterOptions = {
actions: OverlayFooterProps['actions'];
};
export declare type AutoComplete = 'on' | 'off';
export declare type NumberRange = [number, number];
export declare type ChangeEvent = React.ChangeEvent<HTMLInputElement>;
export declare type AvatarSize = 'regular' | 'tiny';
export interface AvatarProps extends BaseProps {
appearance?: AccentAppearance;
children?: string;
firstName?: string;
lastName?: string;
withTooltip: boolean;
tooltipPosition: TooltipProps['position'];
size: AvatarSize;
}
export declare const Avatar: {
(props: AvatarProps): JSX.Element;
displayName: string;
defaultProps: {
tooltipPosition: string;
withTooltip: boolean;
size: string;
};
};
export interface AvatarData extends Record<string, any> {
firstName?: string;
lastName?: string;
appearance?: AvatarProps['appearance'];
}
export interface AvatarPopperProps {
popperRenderer?: (names: AvatarData[]) => JSX.Element;
appendToBody?: PopoverProps['appendToBody'];
dark?: PopoverProps['dark'];
position?: PopoverProps['position'];
on?: PopoverProps['on'];
maxHeight?: number;
popperClassName?: string;
}
export interface AvatarGroupProps extends BaseProps {
list: AvatarData[];
max: number;
borderColor: string;
popoverOptions: AvatarPopperProps;
tooltipPosition: PopoverProps['position'];
}
export declare const AvatarGroup: {
(props: AvatarGroupProps): JSX.Element;
displayName: string;
defaultProps: {
max: number;
borderColor: string;
tooltipPosition: string;
popoverOptions: {};
};
};
export interface BackdropProps extends BaseProps {
open: boolean;
zIndex?: number;
}
export declare const Backdrop: React.FC<BackdropProps>;
export interface BadgeProps extends BaseProps {
appearance: AccentAppearance;
subtle?: boolean;
children: React.ReactText;
}
export declare const Badge: {
(props: BadgeProps): JSX.Element;
displayName: string;
defaultProps: {
appearance: string;
};
};
export interface Breadcrumb {
label: string;
link: string;
}
export interface BreadcrumbsProps extends BaseProps {
list: Breadcrumb[];
onClick?: (link: string) => void;
}
export declare const Breadcrumbs: (props: BreadcrumbsProps) => JSX.Element;
export declare type ButtonType = 'button' | 'submit' | 'reset';
export declare type ButtonAppearance = 'basic' | 'primary' | 'success' | 'alert' | 'transparent';
export declare type ButtonSize = 'tiny' | 'regular' | 'large';
export declare type ButtonAlignment = 'left' | 'right';
export interface ButtonProps extends BaseProps, BaseHtmlProps<HTMLButtonElement> {
type?: ButtonType;
size?: ButtonSize;
appearance?: ButtonAppearance;
disabled?: boolean;
expanded?: boolean;
selected?: boolean;
loading?: boolean;
icon?: string;
tooltip?: string;
iconAlign?: ButtonAlignment;
largeIcon?: boolean;
children?: React.ReactText;
tabIndex?: number;
autoFocus?: boolean;
onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
onMouseEnter?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
onMouseLeave?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
}
export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
export declare type Size = 'small' | 'large';
export declare type View = 'date' | 'month' | 'year';
export declare type Day = 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday';
export declare type DateFormat =
| 'mm/dd/yyyy'
| 'dd/mm/yyyy'
| 'yyyy/mm/dd'
| 'mm-dd-yyyy'
| 'dd-mm-yyyy'
| 'yyyy-mm-dd';
export declare type DateType = number | Date | string;
export declare type Events = {
[key: string]: boolean;
};
export declare type OnHover = React.MouseEvent<HTMLSpanElement> | React.MouseEvent<HTMLDivElement>;
export interface hoveredDateProps {
value: number;
isToday: boolean;
isDisabled: boolean;
todayDate?: Date;
fullDate: Date;
date: number;
month: string;
year: number;
dayName: string;
}
export interface hoveredMonthProps {
value: string;
month: string;
year?: number;
isCurrentMonth: boolean;
isDisabled: boolean;
}
export interface hoveredYearProps {
value: number;
year: number;
isCurrentYear: boolean;
isDisabled: boolean;
}
export interface SharedProps extends BaseProps {
size: Size;
monthsInView: number;
jumpView?: boolean;
firstDayOfWeek: Day;
view: View;
disabledBefore?: Date;
disabledAfter?: Date;
yearNav?: number;
monthNav?: number;
}
export declare type CalendarProps = {
onDateChange?: (date: Date) => void;
onRangeChange?: (startDate: Date | undefined, endDate: Date | undefined) => void;
onDateHover?: (dateData: hoveredDateProps, evnt: OnHover) => void;
onMonthHover?: (monthData: hoveredMonthProps, evnt: OnHover) => void;
onYearHover?: (yearData: hoveredYearProps, evnt: OnHover) => void;
date?: Date;
rangePicker?: boolean;
startDate?: Date;
endDate?: Date;
rangeLimit?: number;
events?: Events;
} & SharedProps;
export interface CalendarState {
view: View;
year?: number;
month?: number;
date?: number;
currDate?: Date;
hoverDate?: Date;
startDate?: Date;
endDate?: Date;
yearBlockNav: number;
yearNav: number;
monthNav: number;
todayDate: number;
currMonth: number;
currYear: number;
}
export declare class Calendar extends React.Component<CalendarProps, CalendarState> {
static defaultProps: {
size: string;
monthsInView: number;
view: string;
firstDayOfWeek: string;
jumpView: boolean;
};
constructor(props: CalendarProps);
componentDidUpdate(prevProps: CalendarProps, prevState: CalendarState): void;
updateState: (year: number, month?: number | undefined, date?: number | undefined) => void;
getDateValue: (year: number, month: number, date: number) => Date | undefined;
getNavDateInfo: (index: number) => Record<string, any>;
getInRangeError: () => boolean;
selectYear: (year: number) => () => void;
yearMouseOverHandler: (
year: number,
isCurrentYear: boolean,
isDisabled: boolean,
ev: React.MouseEvent<HTMLDivElement>
) => void;
selectMonth: (month: number) => () => void;
monthMouseOverHandler: (
month: number,
isCurrentMonth: boolean,
isDisabled: boolean,
ev: React.MouseEvent<HTMLDivElement>
) => void;
selectDate: (index: number, date: number, prevMonthDayRange: number, dayRange: number) => void;
calculateDate: (
index: number,
date: number,
prevMonthDayRange: number,
dayRange: number,
isDateHovered: boolean
) => Date | undefined;
onNavIconClickHandler: (type: string) => () => void;
renderJumpButton: (type: string) => JSX.Element;
onNavHeadingClickHandler: (currView: View) => () => void;
renderHeaderContent: (index: number) => JSX.Element;
renderBodyYear: () => JSX.Element[];
renderBodyMonth: () => JSX.Element[];
onDateRowMouseLeaveHandler: () => void;
renderBodyDate: (index: number) => JSX.Element;
renderEventsIndicator(size: string, active: boolean): JSX.Element;
renderDateValues: (index: number) => JSX.Element[];
renderCalendar: (index: number) => JSX.Element;
render(): JSX.Element;
}
export declare type Shadow = 'none' | 'default' | 'light' | 'medium' | 'dark';
export interface CardProps extends BaseProps, BaseHtmlProps<HTMLDivElement> {
shadow?: Shadow;
}
export declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
export declare type Border = 'top' | 'left' | 'right' | 'bottom';
export interface CardSubduedProps extends BaseProps, BaseHtmlProps<HTMLDivElement> {
border?: Border;
}
export declare const CardSubdued: React.ForwardRefExoticComponent<
CardSubduedProps & React.RefAttributes<HTMLDivElement>
>;
export interface CardHeaderProps extends BaseProps {
children: React.ReactNode;
}
export declare const CardHeader: {
(props: CardHeaderProps): JSX.Element;
displayName: string;
};
export interface CardBodyProps extends BaseProps {
children: React.ReactNode;
}
export declare const CardBody: {
(props: CardBodyProps): JSX.Element;
displayName: string;
};
export interface CardFooterProps extends BaseProps {
children: React.ReactNode;
withSeperator: boolean;
}
export declare const CardFooter: {
(props: CardFooterProps): JSX.Element;
displayName: string;
defaultProps: {
withSeperator: boolean;
};
};
export declare type ChipType = 'action' | 'selection' | 'input';
export declare type Name = number | string;
export interface ChipProps extends BaseProps {
label: string;
icon?: string;
clearButton?: boolean;
disabled?: boolean;
selected?: boolean;
type: ChipType;
onClose?: (name: Name) => void;
onClick?: (name: Name) => void;
name: Name;
}
export declare const Chip: {
(props: ChipProps): JSX.Element;
displayName: string;
defaultProps: {
type: string;
};
};
export interface ChipGroupProps extends BaseProps {
onClose?: (item: ChipProps) => void;
onClick?: (item: ChipProps) => void;
list: ChipProps[];
}
export declare const ChipGroup: {
(props: ChipGroupProps): JSX.Element;
displayName: string;
};
export declare type CheckBoxSize = 'regular' | 'tiny';
export interface CheckboxProps extends BaseProps, OmitNativeProps<HTMLInputElement, 'onChange'> {
size?: CheckBoxSize;
defaultChecked?: boolean;
checked?: boolean;
indeterminate?: boolean;
disabled?: boolean;
label?: string;
helpText?: string;
name?: string;
value?: string | number;
tabIndex?: number;
onChange?: (event: ChangeEvent) => void;
}
export declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>>;
export declare type Columns =
| '1'
| '2'
| '3'
| '4'
| '5'
| '6'
| '7'
| '8'
| '9'
| '10'
| '11'
| '12'
| 'auto'
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12;
export interface ColumnProps extends BaseProps, BaseHtmlProps<HTMLDivElement> {
size?: Columns;
sizeXS?: Columns;
sizeS?: Columns;
sizeM?: Columns;
sizeL?: Columns;
sizeXL?: Columns;
}
export declare const Column: React.ForwardRefExoticComponent<ColumnProps & React.RefAttributes<HTMLDivElement>>;
export declare type DatePickerProps = SharedProps & {
onDateChange?: (date: Date | undefined, dateVal?: string) => void;
date?: DateType;
withInput?: boolean;
open?: boolean;
position: PopoverProps['position'];
inputFormat: DateFormat;
outputFormat: DateFormat;
inputOptions: Omit<InputMaskProps, 'mask' | 'value' | 'onChange' | 'onBlur' | 'onClear'>;
validators: Validators;
closeOnSelect: boolean;
};
export interface DatePickerState {
init: boolean;
date?: Date;
error: boolean;
open: boolean;
}
export declare class DatePicker extends React.Component<DatePickerProps, DatePickerState> {
static defaultProps: {
position: string;
inputFormat: string;
outputFormat: string;
validators: ((val: string, format: string) => boolean)[];
inputOptions: {};
closeOnSelect: boolean;
size: string;
monthsInView: number;
view: string;
firstDayOfWeek: string;
jumpView: boolean;
};
constructor(props: DatePickerProps);
componentDidUpdate(prevProps: DatePickerProps, prevState: DatePickerState): void;
getError: (date?: Date | undefined) => boolean;
onDateChangeHandler: (d?: Date | undefined) => void;
onToggleHandler: (o: boolean, type?: string | undefined) => void;
renderCalendar(): JSX.Element;
render(): JSX.Element;
}
export declare type TimeFormat = 'hh:mm AM' | 'hh:mm';
export declare type TimeType = number | string;
export interface TimePickerProps {
time?: TimeType;
inputOptions: Omit<InputMaskProps, 'mask' | 'value' | 'validators'>;
inputFormat: TimeFormat;
outputFormat: TimeFormat;
validators: Validators;
onTimeChange?: (timeVal?: string) => void;
}
export declare const TimePicker: {
(props: TimePickerProps): JSX.Element;
defaultProps: {
inputFormat: string;
outputFormat: string;
inputOptions: {};
validators: ((val: string, format: string) => boolean)[];
};
displayName: string;
};
export declare type DropDownButtonSize = 'tiny' | 'regular';
export interface TriggerProps {
triggerSize?: DropDownButtonSize;
icon?: string;
placeholder?: string;
inlineLabel?: string;
disabled?: boolean;
menu?: boolean;
error?: boolean;
}
export interface OptionRendererProps {
optionRenderer?: (props: OptionProps) => React.ReactElement;
optionType?: OptionType;
}
export interface OptionSchema extends Record<string, any> {
label: string;
value: React.ReactText;
icon?: string;
subInfo?: string | MetaListProps;
optionType?: OptionType;
selected?: boolean;
disabled?: boolean;
group?: string;
}
export interface OptionProps extends OptionRendererProps {
optionData: OptionSchema;
selected: boolean;
truncateOption?: boolean;
checkboxes?: boolean;
index: number;
active?: boolean;
menu?: boolean;
onClick?: () => void;
onChange?: (event: ChangeEvent) => void;
updateActiveOption?: (index: number) => void;
}
export declare type DropdownAlign = 'left' | 'right';
export declare type OptionType = 'DEFAULT' | 'WITH_ICON' | 'WITH_META' | 'ICON_WITH_META';
export interface Selected {
label: OptionSchema['label'];
value: OptionSchema['value'];
}
export interface SelectAll {
indeterminate: boolean;
checked: boolean;
}
export interface PopoverOptions {
appendToBody?: PopoverProps['appendToBody'];
hideOnReferenceEscape?: PopoverProps['hideOnReferenceEscape'];
boundaryElement?: PopoverProps['boundaryElement'];
}
export declare type TriggerAndOptionProps = TriggerProps & OptionRendererProps;
export interface DropdownListProps extends TriggerAndOptionProps {
align?: DropdownAlign;
noResultMessage?: string;
selectAllLabel?: string;
footerLabel?: string;
selectedSectionLabel?: string;
applyButtonLabel?: string;
cancelButtonLabel?: string;
withSearch?: boolean;
withCheckbox?: boolean;
withSelectAll?: boolean;
showApplyButton?: boolean;
truncateOption?: boolean;
totalOptions?: number;
maxHeight?: number;
width?: number;
maxWidth?: number;
minWidth?: number;
loadersCount?: number;
popoverOptions?: PopoverOptions;
}
export declare type fetchOptionsFunction = (searchTerm: string) => Promise<{
searchTerm?: string;
count: number;
options: OptionSchema[];
}>;
export declare type EventType =
| 'select-option'
| 'deselect-option'
| 'select-all'
| 'deselect-all'
| 'clear-all'
| 'apply-selected'
| 'cancel-selected';
export interface ControlledProps {
selected?: OptionSchema[];
onUpdate?: (type: EventType, options?: OptionSchema | OptionSchema[], recentSelected?: OptionSchema[]) => void;
}
export interface SyncProps {
options: OptionSchema[];
loading?: boolean;
}
export interface AsyncProps {
fetchOptions?: fetchOptionsFunction;
}
export interface TriggerProps {
labelLimit?: number;
customLabel?: (selected: number, totalOptions?: number, selectedOptions?: OptionSchema[]) => string;
customTrigger?: (label: string) => React.ReactElement;
}
export interface SharedDropdownProps extends DropdownListProps, BaseProps {
name?: string | number;
totalOptions?: number;
closeOnSelect: boolean;
triggerOptions: TriggerProps;
open?: boolean;
staticLimit: number;
searchDebounceDuration: number;
onPopperToggle?: (open: boolean, type?: string) => void;
getLabel?: (label: string) => void;
onChange?: (selected: any[] | any, name?: string | number) => void;
onClose?: (selected: any[], name?: string | number) => void;
}
export declare type SyncDropdownProps = SyncProps & SharedDropdownProps;
export declare type AsyncDropdownProps = AsyncProps & SharedDropdownProps;
export declare type UncontrolledDropdownProps = SyncDropdownProps & AsyncDropdownProps;
export declare type ControlledDropdownProps = ControlledProps & SyncDropdownProps & AsyncDropdownProps;
export declare type DropdownProps = ControlledDropdownProps & UncontrolledDropdownProps;
export interface DropdownState {
async: boolean;
searchInit: boolean;
options: OptionSchema[];
loading?: boolean;
optionsApplied: boolean;
open?: boolean;
searchTerm: string;
optionsLength: number;
searchedOptionsLength: number;
triggerLabel: string;
selectAll: SelectAll;
selected: OptionSchema[];
tempSelected: OptionSchema[];
previousSelected: OptionSchema[];
}
export declare class Dropdown extends React.Component<DropdownProps, DropdownState> {
staticLimit: number;
static defaultProps: {
triggerOptions: {};
options: never[];
closeOnSelect: boolean;
staticLimit: number;
searchDebounceDuration: number;
};
constructor(props: DropdownProps);
componentDidMount(): void;
componentDidUpdate(prevProps: DropdownProps, prevState: DropdownState): void;
getDisabledOptions: (options?: OptionSchema[]) => OptionSchema[];
fetchOptionsFunction: (searchTerm: string) => Promise<any>;
getUnSelectedOptions: (options: OptionSchema[], init: boolean) => OptionSchema[];
getSelectedOptions: (options: OptionSchema[], init: boolean) => OptionSchema[];
updateOptions: (init: boolean, async?: boolean | undefined) => void;
updateSearchTerm: (search: string) => void;
updateOnPopperToggle: () => void;
updateTriggerLabel: (selectedArray?: Selected[], totalOptions?: number | undefined) => string;
updateSelectedOptions: (
selectedArray: OptionSchema[],
isSingleSelect: boolean,
isControlled?: boolean | undefined
) => void;
onOptionSelect: (option: OptionSchema) => void;
onSelect: (option: OptionSchema, checked: boolean) => void;
onSelectAll: (event: ChangeEvent) => void;
debounceSearch: import('throttle-debounce').throttle<() => void>;
debounceClear: import('throttle-debounce').throttle<() => void>;
onClearOptions: () => void;
onTogglePopper: (type: string) => void;
onCancelOptions: () => void;
onApplyOptions: () => void;
onToggleDropdown: (updatedOpen: boolean, type?: string | undefined) => void;
render(): JSX.Element;
}
export declare type HeadingSize = 's' | 'm' | 'l' | 'xl' | 'xxl';
export interface HeadingProps extends BaseProps, BaseHtmlProps<HTMLHeadingElement> {
children: React.ReactText;
appearance: HeadingAppearance;
size: HeadingSize;
}
export declare const Heading: {
(props: HeadingProps): JSX.Element;
displayName: string;
defaultProps: {
appearance: string;
size: string;
};
};
export declare type IconAppearance =
| 'default'
| 'destructive'
| 'white'
| 'subtle'
| 'disabled'
| 'info'
| 'alert'
| 'warning'
| 'success'
| 'primary_lighter'
| 'primary'
| 'primary_dark'
| 'alert_lighter'
| 'alert_dark'
| 'warning_lighter'
| 'warning_dark'
| 'success_lighter'
| 'success_dark'
| 'accent1'
| 'accent1_lighter'
| 'accent1_dark'
| 'accent2'
| 'accent2_lighter'
| 'accent2_dark'
| 'accent3'
| 'accent3_lighter'
| 'accent3_dark'
| 'accent4'
| 'accent4_lighter'
| 'accent4_dark'
| 'inverse';
export declare type IconType = 'filled' | 'outlined' | 'outline' | 'rounded' | 'round' | 'two-tone' | 'sharp';
export interface IconProps extends BaseProps {
name?: string;
size: number;
type?: IconType;
appearance?: IconAppearance;
onClick?: (e: React.MouseEvent<HTMLElement>) => void;
onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;
children?: React.ReactNode;
tabIndex?: React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>['tabIndex'];
}
export declare const Icon: {
(props: IconProps): JSX.Element;
displayName: string;
defaultProps: {
size: number;
type: string;
};
};
export declare type InputType = 'text' | 'password' | 'number' | 'email' | 'tel' | 'url';
export declare type InputSize = 'tiny' | 'regular' | 'large';
export interface InputProps extends BaseProps, BaseHtmlProps<HTMLInputElement> {
name?: string;
type?: InputType;
value?: string;
defaultValue?: string;
placeholder?: string;
size?: InputSize;
icon?: string;
inlineLabel?: string;
disabled?: boolean;
required?: boolean;
autoFocus?: boolean;
autoComplete?: AutoComplete;
readOnly?: boolean;
min?: number;
max?: number;
minLength?: number;
maxLength?: number;
pattern?: string;
error?: boolean;
info?: string;
minWidth?: string;
onClear?: (e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>) => void;
onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
onClick?: (e: React.MouseEvent<HTMLInputElement>) => void;
onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;
onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;
actionIcon?: React.ReactElement<IconProps>;
}
export declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
export declare type MetricInputSize = 'regular' | 'large';
export interface MetricInputProps extends BaseProps, BaseHtmlProps<HTMLInputElement> {
name?: string;
value?: React.ReactText;
defaultValue?: React.ReactText;
placeholder?: string;
size?: MetricInputSize;
icon?: string;
prefix?: string;
suffix?: string;
disabled?: boolean;
autoFocus?: boolean;
autoComplete?: AutoComplete;
readOnly?: boolean;
min?: number;
max?: number;
error?: boolean;
onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
onClick?: (e: React.MouseEvent<HTMLInputElement>) => void;
onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;
onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;
}
export declare const MetricInput: React.ForwardRefExoticComponent<
MetricInputProps & React.RefAttributes<HTMLInputElement>
>;
export interface MaskProps extends BaseProps {
mask: Mask;
placeholderChar?: string;
caption?: string;
validators?: Validators;
onChange?: (e: React.ChangeEvent<HTMLInputElement>, maskedVal: string) => void;
onBlur?: (e: React.ChangeEvent<HTMLInputElement>, maskedVal: string) => void;
onClear?: (e: React.MouseEvent<HTMLElement>) => void;
clearOnEmptyBlur?: boolean;
}
export declare type InputMaskProps = InputProps & MaskProps;
export declare const InputMask: React.ForwardRefExoticComponent<
InputProps & MaskProps & React.RefAttributes<HTMLInputElement>
>;
export interface LabelProps extends BaseProps, BaseHtmlProps<HTMLLabelElement> {
children: React.ReactNode;
disabled?: boolean;
required?: boolean;
optional?: boolean;
withInput?: boolean;
}
export declare const Label: {
(props: LabelProps): JSX.Element;
displayName: string;
};
export interface CaptionProps extends BaseProps {
children: React.ReactNode;
error?: boolean;
hide?: boolean;
withInput?: boolean;
}
export declare const Caption: {
(props: CaptionProps): JSX.Element;
displayName: string;
};
export declare type TextSize = 'small' | 'regular' | 'large';
export declare type TextAppearance = 'default' | 'white' | 'destructive' | 'subtle' | 'disabled' | 'success' | 'link';
export interface TextProps extends BaseProps, BaseHtmlProps<HTMLSpanElement> {
children: React.ReactText;
weight?: 'strong' | 'medium';
small?: boolean;
appearance: TextAppearance;
size: TextSize;
}
export declare const Text: {
(props: TextProps): JSX.Element;
displayName: string;
defaultProps: {
appearance: string;
size: string;
};
};
export interface LegendProps extends BaseProps {
children: React.ReactText;
iconAppearance: string;
labelAppearance?: TextAppearance;
iconSize: number;
labelWeight?: 'strong' | 'medium';
onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
onMouseEnter?: (e: React.MouseEvent<HTMLDivElement>) => void;
onMouseLeave?: (e: React.MouseEvent<HTMLDivElement>) => void;
}
export declare const Legend: {
(props: LegendProps): JSX.Element;
displayName: string;
defaultProps: {
iconAppearance: string;
iconSize: number;
};
};
export declare type DropdownOptions = MakeOptional<DropdownProps, keyof (typeof Dropdown)['defaultProps']>;
export interface EditableDropdownProps extends BaseProps {
placeholder: string;
dropdownOptions: Omit<DropdownOptions, 'getLabel' | 'placeholder'>;
customTriggerRenderer?: (label: string) => React.ReactNode;
}
export declare const EditableDropdown: {
(props: EditableDropdownProps): JSX.Element;
defaultProps: {
placeholder: string;
dropdownOptions: {};
};
};
export declare type LinkTarget = '_blank' | '_self' | '_parent' | '_top';
export declare type LinkAppearance = 'default' | 'subtle';
export declare type LinkSize = 'regular' | 'tiny';
export interface LinkProps extends BaseProps, OmitNativeProps<HTMLLinkElement, 'onClick'> {
id?: string;
appearance: LinkAppearance;
size: LinkSize;
disabled: boolean;
href?: string;
target?: LinkTarget;
rel?: string;
download?: string;
hreflang?: string;
onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;
children: React.ReactNode;
}
export declare const Link: {
(props: LinkProps): JSX.Element;
displayName: string;
defaultProps: {
appearance: string;
size: string;
disabled: boolean;
};
};
export interface MessageProps extends BaseProps {
appearance: MessageAppearance;
title?: string;
children?: React.ReactNode;
description: string;
actions?: React.ReactNode;
}
export declare const Message: {
(props: MessageProps): JSX.Element;
displayName: string;
defaultProps: {
appearance: string;
description: string;
};
};
export interface MetaProps {
label: string;
icon?: string;
iconAppearance?: IconProps['appearance'];
labelAppearance?: TextProps['appearance'];
}
export interface MetaListProps extends BaseProps {
list: MetaProps[];
seperator?: boolean;
seperatorAppearance: IconProps['appearance'];
iconAppearance: IconProps['appearance'];
labelAppearance: TextProps['appearance'];
}
export declare const MetaList: {
(props: MetaListProps): JSX.Element;
displayName: string;
defaultProps: {
seperatorAppearance: string;
iconAppearance: string;
labelAppearance: string;
};
};
export interface HandleProps {
value: number;
fillAfter?: boolean;
fillBefore?: boolean;
onChange?: (newValue: number) => void;
onRelease?: (newValue: number) => void;
}
export interface InternalHandleProps extends HandleProps {
disabled?: boolean;
isCurrentLabelHovered?: boolean;
label: string;
max: number;
min: number;
stepSize: number;
tickSize: number;
tickSizeRatio: number;
zIndex?: number;
}
export interface HandleState {
isHandleMoving?: boolean;
isHandleHovered?: boolean;
}
declare class Handle extends React.Component<InternalHandleProps, HandleState> {
state: {
isHandleMoving: boolean;
isHandleHovered: boolean;
};
handleElement: HTMLElement | null;
refHandlers: {
handle: (el: HTMLDivElement) => HTMLDivElement;
};
componentWillUnmount(): void;
componentDidUpdate(_prevProps: InternalHandleProps, prevState: HandleState): void;
mouseEventClientOffset: (event: MouseEvent | React.MouseEvent<HTMLElement>) => number;
clientToValue: (clientPixel: number) => number;
changeValue: (newValue: number, callback?: ((newValue: number) => void) | undefined) => number;
endHandleMovement: (event: MouseEvent) => void;
continueHandleMovement: (event: MouseEvent) => void;
beginHandleMovement: (event: MouseEvent | React.MouseEvent<HTMLElement>) => void;
handleKeyDown: (event: React.KeyboardEvent<HTMLSpanElement>) => void;
handleKeyUp: (event: React.KeyboardEvent<HTMLSpanElement>) => void;
getHandleMidpointAndOffset: (
handleElement: HTMLElement | null,
useOppositeDimension?: boolean
) => {
handleMidpoint: number;
handleOffset: number;
};
handleMouseOver: () => void;
handleMouseLeave: () => void;
render(): JSX.Element;
removeDocumentEventListeners: () => void;
}
export interface MultiSliderProps extends BaseProps {
disabled?: boolean;
labelStepSize: number;
labelPrecision?: number;
max: number;
min: number;
stepSize: number;
label?: string;
labelRenderer: boolean | ((value: number) => string);
}
export interface SliderBaserProps extends MultiSliderProps {
onChange?: (values: number) => void;
onRelease?: (values: number) => void;
}
export interface RangeSliderBaseProps extends MultiSliderProps {
onRangeChange?: (values: NumberRange) => void;
onRangeRelease?: (values: NumberRange) => void;
}
export interface MultiSliderState {
labelPrecision: number;
tickSize: number;
tickSizeRatio: number;
hoveredLabelValue?: number;
}
export declare type InternalMultiSliderProps = SliderBaserProps & RangeSliderBaseProps;
export declare class MultiSlider extends React.Component<InternalMultiSliderProps, MultiSliderState> {
static defaultProps: {
labelStepSize: number;
max: number;
min: number;
stepSize: number;
labelRenderer: boolean;
};
static Handle: React.FunctionComponent<HandleProps>;
handleElements: Handle[];
trackElement: HTMLElement | null;
constructor(props: InternalMultiSliderProps);
getDerivedStateFromProps(props: InternalMultiSliderProps): {
labelPrecision: number;
};
getSnapshotBeforeUpdate(prevProps: InternalMultiSliderProps): null;
componentDidMount(): void;
getLabelPrecision: ({ labelPrecision, stepSize }: InternalMultiSliderProps) => number;
getOffsetRatio: (value: number) => number;
addHandleRef: (ref: Handle) => void;
getHandleValues: (props: React.PropsWithChildren<InternalMultiSliderProps>) => HandleProps[];
updateTickSize: () => void;
getTrackFill: (start: HandleProps, end?: HandleProps | undefined) => boolean;
nearestHandleForValue(handles: Handle[], getOffset: (handle: Handle) => number): Handle | undefined;
maybeHandleTrackClick: (event: React.MouseEvent<HTMLDivElement>) => void;
getLockedHandleIndex: (startIndex: number, endIndex: number) => number;
getNewHandleValues: (newValue: number, oldIndex: number) => number[];
onReleaseHandler: (newValue: number, index: number) => void;
onChangeHandler: (newValue: number, index: number) => void;
formatLabel: (value: number) => string;
renderHandles: () => JSX.Element[] | null;
renderLabels: () => JSX.Element[];
renderTrackFill: (index: number, start: HandleProps, end: HandleProps) => JSX.Element;
renderTracks: () => JSX.Element[];
handleLabelMouseOver: (value: number) => void;
handleLabelMouseLeave: () => void;
render(): JSX.Element;
}
export interface OutsideClickProps extends BaseHtmlProps<HTMLDivElement>, BaseProps {
onOutsideClick: (event: Event) => void;
children: React.ReactElement<any>;
}
export declare const OutsideClick: React.ForwardRefExoticComponent<
OutsideClickProps & React.RefAttributes<HTMLDivElement>
>;
export declare type ParagraphAppearance = 'default' | 'white' | 'destructive' | 'subtle' | 'disabled';
export interface ParagraphProps extends BaseProps, BaseHtmlProps<HTMLParagraphElement> {
children: React.ReactNode;
appearance: ParagraphAppearance;
}
export declare const Paragraph: {
(props: ParagraphProps): JSX.Element;
displayName: string;
defaultProps: {
appearance: string;
};
};
export interface ProgressBarProps extends BaseProps {
value: number;
max: number;
}
export declare const ProgressBar: {
(props: ProgressBarProps): JSX.Element;
displayName: string;
defaultProps: {
max: number;
};
};
export declare type RadioSize = 'regular' | 'tiny';
export interface RadioProps extends BaseProps, OmitNativeProps<HTMLInputElement, 'onChange'> {
size?: RadioSize;
disabled?: boolean;
label?: string;
helpText?: string;
name: string;
value: string;
defaultChecked?: boolean;
checked?: boolean;
onChange?: (event: ChangeEvent) => void;
}
export declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLInputElement>>;
export declare type RowProps = BaseProps & BaseHtmlProps<HTMLDivElement>;
export declare const Row: React.ForwardRefExoticComponent<
BaseProps &
Pick<
React.HTMLProps<HTMLDivElement>,
| 'accept'
| 'acceptCharset'
| 'action'
| 'allowFullScreen'
| 'allowTransparency'
| 'alt'
| 'as'
| 'async'
| 'autoComplete'
| 'autoFocus'
| 'autoPlay'
| 'capture'
| 'cellPadding'
| 'cellSpacing'
| 'charSet'
| 'challenge'
| 'checked'
| 'cite'
| 'classID'
| 'cols'
| 'colSpan'
| 'content'
| 'controls'
| 'coords'
| 'crossOrigin'
| 'data'
| 'dateTime'
| 'default'
| 'defer'
| 'disabled'
| 'download'
| 'encType'
| 'form'
| 'formAction'
| 'formEncType'
| 'formMethod'
| 'formNoValidate'
| 'formTarget'
| 'frameBorder'
| 'headers'
| 'height'
| 'high'
| 'href'
| 'hrefLang'
| 'htmlFor'
| 'httpEquiv'
| 'integrity'
| 'keyParams'
| 'keyType'
| 'kind'
| 'label'
| 'list'
| 'loop'
| 'low'
| 'manifest'
| 'marginHeight'
| 'marginWidth'
| 'max'
| 'maxLength'
| 'media'
| 'mediaGroup'
| 'method'
| 'min'
| 'minLength'
| 'multiple'
| 'muted'
| 'name'
| 'nonce'
| 'noValidate'
| 'open'
| 'optimum'
| 'pattern'
| 'placeholder'
| 'playsInline'
| 'poster'
| 'preload'
| 'readOnly'
| 'rel'
| 'required'
| 'reversed'
| 'rows'
| 'rowSpan'
| 'sandbox'
| 'scope'
| 'scoped'
| 'scrolling'
| 'seamless'
| 'selected'
| 'shape'
| 'sizes'
| 'span'
| 'src'
| 'srcDoc'
| 'srcLang'
| 'srcSet'
| 'start'
| 'step'
| 'summary'
| 'target'
| 'type'
| 'useMap'
| 'value'
| 'width'
| 'wmode'
| 'wrap'
| 'defaultChecked'
| 'defaultValue'
| 'suppressContentEditableWarning'
| 'suppressHydrationWarning'
| 'accessKey'
| 'contentEditable'
| 'contextMenu'
| 'dir'
| 'draggable'
| 'hidden'
| 'id'
| 'lang'
| 'slot'
| 'spellCheck'
| 'style'
| 'tabIndex'
| 'title'
| 'translate'
| 'radioGroup'
| 'role'
| 'about'
| 'datatype'
| 'inlist'
| 'prefix'
| 'property'
| 'resource'
| 'typeof'
| 'vocab'
| 'autoCapitalize'
| 'autoCorrect'
| 'autoSave'
| 'color'
| 'itemProp'
| 'itemScope'
| 'itemType'
| 'itemID'
| 'itemRef'
| 'results'
| 'security'
| 'unselectable'
| 'inputMode'
| 'is'
| 'aria-activedescendant'
| 'aria-atomic'
| 'aria-autocomplete'
| 'aria-busy'
| 'aria-checked'
| 'aria-colcount'
| 'aria-colindex'
| 'aria-colspan'
| 'aria-controls'
| 'aria-current'
| 'aria-describedby'
| 'aria-details'
| 'aria-disabled'
| 'aria-dropeffect'
| 'aria-errormessage'
| 'aria-expanded'
| 'aria-flowto'
| 'aria-grabbed'
| 'aria-haspopup'
| 'aria-hidden'
| 'aria-invalid'
| 'aria-keyshortcuts'
| 'aria-label'
| 'aria-labelledby'
| 'aria-level'
| 'aria-live'
| 'aria-modal'
| 'aria-multiline'
| 'aria-multiselectable'
| 'aria-orientation'
| 'aria-owns'
| 'aria-placeholder'
| 'aria-posinset'
| 'aria-pressed'
| 'aria-readonly'
| 'aria-relevant'
| 'aria-required'
| 'aria-roledescription'
| 'aria-rowcount'
| 'aria-rowindex'
| 'aria-rowspan'
| 'aria-selected'
| 'aria-setsize'
| 'aria-sort'
| 'aria-valuemax'
| 'aria-valuemin'
| 'aria-valuenow'
| 'aria-valuetext'
| 'children'
| 'dangerouslySetInnerHTML'
| 'onCopy'
| 'onCopyCapture'
| 'onCut'
| 'onCutCapture'
| 'onPaste'
| 'onPasteCapture'
| 'onCompositionEnd'
| 'onCompositionEndCapture'
| 'onCompositionStart'
| 'onCompositionStartCapture'
| 'onCompositionUpdate'
| 'onCompositionUpdateCapture'
| 'onFocus'
| 'onFocusCapture'
| 'onBlur'
| 'onBlurCapture'
| 'onChange'
| 'onChangeCapture'
| 'onBeforeInput'
| 'onBeforeInputCapture'
| 'onInput'
| 'onInputCapture'
| 'onReset'
| 'onResetCapture'
| 'onSubmit'
| 'onSubmitCapture'
| 'onInvalid'
| 'onInvalidCapture'
| 'onLoad'
| 'onLoadCapture'
| 'onError'
| 'onErrorCapture'
| 'onKeyDown'
| 'onKeyDownCapture'
| 'onKeyPress'
| 'onKeyPressCapture'
| 'onKeyUp'
| 'onKeyUpCapture'
| 'onAbort'
| 'onAbortCapture'
| 'onCanPlay'
| 'onCanPlayCapture'
| 'onCanPlayThrough'
| 'onCanPlayThroughCapture'
| 'onDurationChange'
| 'onDurationChangeCapture'
| 'onEmptied'
| 'onEmptiedCapture'
| 'onEncrypted'
| 'onEncryptedCapture'
| 'onEnded'
| 'onEndedCapture'
| 'onLoadedData'
| 'onLoadedDataCapture'
| 'onLoadedMetadata'
| 'onLoadedMetadataCapture'
| 'onLoadStart'
| 'onLoadStartCapture'
| 'onPause'
| 'onPauseCapture'
| 'onPlay'
| 'onPlayCapture'
| 'onPlaying'
| 'onPlayingCapture'
| 'onProgress'
| 'onProgressCapture'
| 'onRateChange'
| 'onRateChangeCapture'
| 'onSeeked'
| 'onSeekedCapture'
| 'onSeeking'
| 'onSeekingCapture'
| 'onStalled'
| 'onStalledCapture'
| 'onSuspend'
| 'onSuspendCapture'
| 'onTimeUpdate'
| 'onTimeUpdateCapture'
| 'onVolumeChange'
| 'onVolumeChangeCapture'
| 'onWaiting'
| 'onWaitingCapture'
| 'onAuxClick'
| 'onAuxClickCapture'
| 'onClick'
| 'onClickCapture'
| 'onContextMenu'
| 'onContextMenuCapture'
| 'onDoubleClick'
| 'onDoubleClickCapture'
| 'onDrag'
| 'onDragCapture'
| 'onDragEnd'
| 'onDragEndCapture'
| 'onDragEnter'
| 'onDragEnterCapture'
| 'onDragExit'
| 'onDragExitCapture'
| 'onDragLeave'
| 'onDragLeaveCapture'
| 'onDragOver'
| 'onDragOverCapture'
| 'onDragStart'
| 'onDragStartCapture'
| 'onDrop'
| 'onDropCapture'
| 'onMouseDown'
| 'onMouseDownCapture'
| 'onMouseEnter'
| 'onMouseLeave'
| 'onMouseMove'
| 'onMouseMoveCapture'
| 'onMouseOut'
| 'onMouseOutCapture'
| 'onMouseOver'
| 'onMouseOverCapture'
| 'onMouseUp'
| 'onMouseUpCapture'
| 'onSelect'
| 'onSelectCapture'
| 'onTouchCancel'
| 'onTouchCancelCapture'
| 'onTouchEnd'
| 'onTouchEndCapture'
| 'onTouchMove'
| 'onTouchMoveCapture'
| 'onTouchStart'
| 'onTouchStartCapture'
| 'onPointerDown'
| 'onPointerDownCapture'
| 'onPointerMove'
| 'onPointerMoveCapture'
| 'onPointerUp'
| 'onPointerUpCapture'
| 'onPointerCancel'
| 'onPointerCancelCapture'
| 'onPointerEnter'
| 'onPointerEnterCapture'
| 'onPointerLeave'
| 'onPointerLeaveCapture'
| 'onPointerOver'
| 'onPointerOverCapture'
| 'onPointerOut'
| 'onPointerOutCapture'
| 'onGotPointerCapture'
| 'onGotPointerCaptureCapture'
| 'onLostPointerCapture'
| 'onLostPointerCaptureCapture'
| 'onScroll'
| 'onScrollCapture'
| 'onWheel'
| 'onWheelCapture'
| 'onAnimationStart'
| 'onAnimationStartCapture'
| 'onAnimationEnd'
| 'onAnimationEndCapture'
| 'onAnimationIteration'
| 'onAnimationIterationCapture'
| 'onTransitionEnd'
| 'onTransitionEndCapture'
| 'key'
> &
React.RefAttributes<HTMLDivElement>
>;
export interface StatusHintProps extends BaseProps {
children: React.ReactText;
appearance: MessageAppearance;
onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
onMouseEnter?: (e: React.MouseEvent<HTMLDivElement>) => void;
onMouseLeave?: (e: React.MouseEvent<HTMLDivElement>) => void;
}
export declare const StatusHint: {
(props: StatusHintProps): JSX.Element;
displayName: string;
defaultProps: {
appearance: string;
};
};
export interface PillsProps extends BaseProps {
appearance: AccentAppearance;
subtle?: boolean;
children: React.ReactText;
}
export declare const Pills: {
(props: PillsProps): JSX.Element;
displayName: string;
defaultProps: {
appearance: string;
};
};
export declare type SpinnerAppearance = 'primary' | 'secondary' | 'white';
export declare type SpinnerSize = 'small' | 'medium' | 'large';
export interface SpinnerProps extends BaseProps {
appearance: SpinnerAppearance;
size: SpinnerSize;
}
export declare const Spinner: {
(props: SpinnerProps): JSX.Element;
displayName: string;
defaultProps: {
appearance: string;
size: string;
};
};
export interface SliderProps extends MultiSliderProps {
defaultValue: number;
value?: number;
onChange?: (value: number) => void;
onRelease?: (value: number) => void;
}
export declare const Slider: {
(props: SliderProps): JSX.Element;
displayName: string;
defaultProps: {
defaultValue: number;
labelStepSize: number;
max: number;
min: number;
stepSize: number;
labelRenderer: boolean;
};
};
export interface RangeSliderProps extends MultiSliderProps {
defaultValue: NumberRange;
value?: NumberRange;
onChange?: (value: NumberRange) => void;
onRelease?: (value: NumberRange) => void;
}
export declare const RangeSlider: {
(props: RangeSliderProps): JSX.Element;
displayName: string;
defaultProps: {
defaultValue: number[];
labelStepSize: number;
max: number;
min: number;
stepSize: number;
labelRenderer: boolean;
};
};
export interface SubheadingProps extends BaseProps, BaseHtmlProps<HTMLHeadingElement> {
children: React.ReactText;
appearance: HeadingAppearance;
}
export declare const Subheading: {
(props: SubheadingProps): JSX.Element;
displayName: string;
defaultProps: {
appearance: string;
};
};
export declare type SwitchSize = 'regular' | 'tiny' | 'large';
export declare type SwitchAppearance = 'primary' | 'alert' | 'success' | 'warning';
export declare type KeyboardEvent = React.KeyboardEvent<HTMLInputElement>;
export interface SwitchProps extends BaseProps, OmitNativeProps<HTMLInputElement, 'onChange'> {
size?: SwitchSize;
appearance?: SwitchAppearance;
defaultChecked?: boolean;
checked?: boolean;
disabled?: boolean;
name?: string;
value?: string;
onChange?: (event: ChangeEvent | KeyboardEvent, selected: boolean) => void;
}
export declare const Switch: React.ForwardRefExoticComponent<SwitchProps & React.RefAttributes<HTMLInputElement>>;
export interface TextareaProps extends BaseProps, BaseHtmlProps<HTMLTextAreaElement> {
name?: string;
value?: string;
defaultValue?: string;
placeholder?: string;
rows?: number;
disabled?: boolean;
required?: boolean;
error?: boolean;
resize?: boolean;
onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;
onClick?: (e: React.MouseEvent<HTMLTextAreaElement>) => void;
onBlur?: (e: React.FocusEvent<HTMLTextAreaElement>) => void;
onFocus?: (e: React.FocusEvent<HTMLTextAreaElement>) => void;
}
export declare const Textarea: React.ForwardRefExoticComponent<
TextareaProps & React.RefAttributes<HTMLTextAreaElement>
>;
export declare type Action = {
label: string;
onClick: (e: React.MouseEvent) => void;
};
export interface ToastProps extends BaseProps {
title: string;
appearance: MessageAppearance;
message?: string;
actions?: Action[];
onClose?: () => void;
}
export declare const Toast: {
(props: ToastProps): JSX.Element;
displayName: string;
defaultProps: {
appearance: string;
};
};
export declare type PositionType =
| 'auto-start'
| 'auto'
| 'auto-end'
| 'top-start'
| 'top'
| 'top-end'
| 'right-start'
| 'right'
| 'right-end'
| 'bottom-end'
| 'bottom'
| 'bottom-start'
| 'left-end'
| 'left'
| 'left-start';
export declare type ActionType = 'click' | 'hover';
export declare type Offset = 'small' | 'medium' | 'large';
export interface PopperWrapperProps {
init?: boolean;
trigger: React.ReactElement<any>;
boundaryElement?: Element | null;
triggerClass?: string;
placement: PositionType;
children: React.ReactElement<any>;
style: React.CSSProperties;
appendToBody: boolean;
on: ActionType;
hoverable: boolean;
offset: Offset;
closeOnBackdropClick: boolean;
closeOnScroll?: boolean;
open?: boolean;
hide?: boolean;
onToggle: (open: boolean, type?: string) => void;
}
export declare type Position =
| 'top'
| 'top-start'
| 'top-end'
| 'bottom'
| 'bottom-start'
| 'bottom-end'
| 'left'
| 'right';
export interface CustomStyle {
height?: number | string;
minHeight?: number | string;
maxHeight?: number | string;
width?: number | string;
minWidth?: number | string;
maxWidth?: number | string;
}
declare const propsList: readonly [
'appendToBody',
'trigger',
'hoverable',
'on',
'open',
'closeOnBackdropClick',
'offset',
'closeOnScroll',
];
export declare type PopperProps = (typeof propsList)[number];
export interface PopoverProps extends Pick<PopperWrapperProps, PopperProps>, BaseProps {
children: React.ReactNode;
position: Position;
onToggle?: (open: boolean, type?: string) => void;
dark?: boolean;
customStyle: CustomStyle;
triggerClass?: string;
hideOnReferenceEscape?: boolean;
boundaryElement: React.RefObject<HTMLElement> | Element;
}
export declare const Popover: {
(props: PopoverProps): JSX.Element;
displayName: string;
defaultProps: Record<string, any> & {
offset: string;
position: string;
hideOnReferenceEscape: boolean;
customStyle: {};
boundaryElement: HTMLElement;
};
};
export declare type ChipOptions = {
icon?: ChipProps['icon'];
type?: ChipProps['type'];
clearButton?: ChipProps['clearButton'];
onClick?: (value: string, index: number) => void;
};
export interface ChipInputProps extends BaseProps {
allowDuplicates: boolean;
chipOptions: ChipOptions;
disabled?: boolean;
placeholder?: string;
value?: stri