storybookdesignpack
Version:
React components library project for censa Design System
1,313 lines (1,310 loc) • 77 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?: string[];
defaultValue: string[];
autoFocus: boolean;
onChange?: (chips: string[]) => void;
onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;
onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;
}
export declare const ChipInput: {
(props: ChipInputProps): JSX.Element;
displayName: string;
defaultProps: {
chipOptions: {};
defaultValue: never[];
allowDuplicates: boolean;
autoFocus: boolean;
};
};
export declare type Menu = {
name: string;
label: string;
link?: string;
icon?: string;
group?: string;
count?: number;
disabled?: boolean;
subMenu?: Menu[];
};
export declare type ActiveMenu = ({
name: string;
} | {
link: string;
}) & Partial<Menu>;
export interface VerticalNavProps extends BaseProps {
menus: Menu[];
active?: ActiveMenu;
onClick?: (menu: Menu) => void;
rounded: boolean;
expanded: boolean;
autoCollapse: boolean;
}
export declare const VerticalNav: {
(props: VerticalNavProps): JSX.Element;
defaultProps: {
expanded: boolean;
autoCollapse: boolean;
rounded: boolean;
};
};
export declare type HorizontalNavProps = BaseProps & Pick<VerticalNavProps, "menus" | "active" | "onClick">;
export declare const HorizontalNav: (props: HorizontalNavProps) => JSX.Element;
declare const tooltipPropsList: readonly ["trigger", "on", "open", "offset", "onToggle", "dark", "customStyle", "closeOnBackdropClick", "hideOnReferenceEscape", "closeOnScroll"];
export declare type TooltipPopperProps = typeof tooltipPropsList[number];
export interface TooltipProps extends Omit<PopoverProps, TooltipPopperProps>, BaseProps {
tooltip: string;
children: PopoverProps["trigger"];
}
export declare const Tooltip: {
(props: TooltipProps): JSX.Element;
defaultProps: Record<string, any> & {
hoverable: boolean;
};
};
export interface DialogProps extends BaseProps {
onClose: (event?: Event | React.MouseEvent<HTMLElement, MouseEvent>, reason?: string) => void;
dimension: ModalProps["dimension"];
open: boolean;
heading: ModalHeaderProps["heading"];
title?: string;
description?: string;
primaryButtonLabel: string;
primaryButtonAppearance: ButtonProps["appearance"];
primaryButtonCallback: () => void;
secondaryButtonLabel: string;
secondaryButtonAppearance: ButtonProps["appearance"];
secondaryButtonCallback: () => void;
}
export declare const Dialog: {
(props: DialogProps): JSX.Element;
displayName: string;
defaultProps: {
dimension: string;
primaryButtonAppearance: string;
secondaryButtonAppearance: string;
};
};
export interface OverlayHeaderProps extends BaseProps {
heading?: string;
onClose?: (event: React.MouseEvent<HTMLElement, MouseEvent>, reason?: string) => void;
subHeading?: string;
backButton?: boolean;
backButtonCallback?: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;
backIcon?: boolean;
backIconCallback?: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;
}
export declare type ModalDimension = "small" | "medium" | "large";
export interface ModalProps extends BaseProps {
backdropClose?: boolean | ((event?: Event, reason?: string) => void);
dimension: ModalDimension;
open: boolean;
onClose?: (event?: Event | React.MouseEvent<HTMLElement, MouseEvent>, reason?: string) => void;
headerOptions?: OverlayHeaderProps;
header?: React.ReactNode;
footer?: React.ReactNode;
footerOptions?: FooterOptions;
children?: React.ReactNode;
seperator?: boolean;
closeOnEscape?: boolean;
}
export interface ModalState {
open: boolean;
animate: boolean;
zIndex?: number;
}
export declare class Modal extends React.Component<ModalProps, ModalState> {
modalRef: React.RefObject<HTMLDivElement>;
element: Element;
static defaultProps: {
dimension: string;
};
constructor(props: ModalProps);
onCloseHandler: (event: KeyboardEvent) => void;
componentDidMount(): void;
componentWillUnmount(): void;
componentDidUpdate(prevProps: ModalProps): void;
onOutsideClickHandler(event: Event): void;
render(): JSX.Element;
}
export interface ModalHeaderProps extends BaseProps {
heading?: string;
onClose?: (event: React.MouseEvent<HTMLElement, MouseEvent>, reason?: string) => void;
subHeading?: string;
seperator?: boolean;
backIcon?: boolean;
backIconCallback?: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;
}
export declare const ModalHeader: {
(props: ModalHeaderProps): JSX.Element;
displayName: string;
};
export interface ModalBodyProps extends BaseProps {
children: React.ReactNode;
stickFooter: boolean;
withFooter: boolean;
}
export declare const ModalBody: {
(props: ModalBodyProps): JSX.Element;
defaultProps: {
stickFooter: boolean;
withFooter: boolean;
};
displayName: string;
};
export interface ModalFooterProps extends BaseProps {
open?: boolean;
children: React.ReactNode;
stickToBottom?: boolean;
seperator?: boolean;
inSidesheet?: boolean;
}
export declare const ModalFooter: {
(props: ModalFooterProps): JSX.Element;
displayName: string;
};
export declare type FullScreenDimension = "medium" | "large";
export interface FullscreenModalProps extends BaseProps {
dimension: FullScreenDimension;
op