UNPKG

react-lightning-design-system

Version:

Salesforce Lightning Design System components built with React

68 lines (67 loc) 2.1 kB
import React, { FC, CSSProperties, Ref, ReactNode } from 'react'; import { FormElementProps } from './FormElement'; import { DropdownMenuProps } from './DropdownMenu'; import { Bivariant } from './typeUtils'; /** * */ type PicklistValue = string | number; type PicklistValueType<Multi extends boolean | undefined> = Multi extends true ? Array<PicklistValue> : Multi extends false | undefined ? PicklistValue | null : Array<PicklistValue> | string | number | null; /** * */ export type PicklistProps<MultiSelect extends boolean | undefined> = { id?: string; className?: string; label?: string; required?: boolean; multiSelect?: MultiSelect; error?: FormElementProps['error']; cols?: number; name?: string; value?: PicklistValueType<MultiSelect>; defaultValue?: PicklistValueType<MultiSelect>; selectedText?: string; optionsSelectedText?: string; opened?: boolean; defaultOpened?: boolean; disabled?: boolean; menuSize?: DropdownMenuProps['size']; menuStyle?: CSSProperties; tooltip?: ReactNode; tooltipIcon?: string; elementRef?: Ref<HTMLDivElement>; buttonRef?: Ref<HTMLButtonElement>; dropdownRef?: Ref<HTMLDivElement>; onValueChange?: Bivariant<(newValue: PicklistValueType<MultiSelect>, prevValue: PicklistValueType<MultiSelect>) => void>; onSelect?: Bivariant<(value: PicklistValue) => void>; onKeyDown?: (e: React.KeyboardEvent) => void; onBlur?: () => void; onComplete?: () => void; children?: React.ReactNode; }; /** * */ export declare const Picklist: (<MultiSelect extends boolean | undefined>(props: PicklistProps<MultiSelect>) => ReturnType<FC>) & { isFormElement: boolean; }; /** * */ export type PicklistItemProps = { label?: React.ReactNode; value?: string | number; selected?: boolean; disabled?: boolean; icon?: string; iconRight?: string; divider?: 'top' | 'bottom'; onClick?: (e: React.SyntheticEvent) => void; children?: React.ReactNode; }; /** * */ export declare const PicklistItem: FC<PicklistItemProps>; export {};