UNPKG

@blockscout/ui-toolkit

Version:

A comprehensive collection of reusable Chakra UI components and theme system for Blockscout's projects

60 lines (59 loc) 3 kB
import { ListCollection, Select as ChakraSelect } from '@chakra-ui/react'; import * as React from 'react'; export interface SelectOption<Value extends string = string> { label: string; renderLabel?: () => React.ReactNode; value: Value; icon?: React.ReactNode; } export interface SelectControlProps extends ChakraSelect.ControlProps { noIndicator?: boolean; triggerProps?: ChakraSelect.TriggerProps; loading?: boolean; } export declare const SelectControl: React.ForwardRefExoticComponent<SelectControlProps & React.RefAttributes<HTMLButtonElement>>; export declare const SelectClearTrigger: React.ForwardRefExoticComponent<ChakraSelect.ClearTriggerProps & React.RefAttributes<HTMLButtonElement>>; interface SelectContentProps extends ChakraSelect.ContentProps { portalled?: boolean; portalRef?: React.RefObject<HTMLElement>; } export declare const SelectContent: React.ForwardRefExoticComponent<SelectContentProps & React.RefAttributes<HTMLDivElement>>; export interface SelectItemProps extends ChakraSelect.ItemProps { item: SelectOption; } export declare const SelectItem: React.ForwardRefExoticComponent<SelectItemProps & React.RefAttributes<HTMLDivElement>>; interface SelectValueTextProps extends Omit<ChakraSelect.ValueTextProps, 'children'> { children?(items: Array<SelectOption>): React.ReactNode; size?: SelectRootProps['size']; required?: boolean; invalid?: boolean; errorText?: string; } export declare const SelectValueText: React.ForwardRefExoticComponent<SelectValueTextProps & React.RefAttributes<HTMLSpanElement>>; export interface SelectRootProps extends ChakraSelect.RootProps { } export declare const SelectRoot: ChakraSelect.RootComponent; interface SelectItemGroupProps extends ChakraSelect.ItemGroupProps { label: React.ReactNode; } export declare const SelectItemGroup: React.ForwardRefExoticComponent<SelectItemGroupProps & React.RefAttributes<HTMLDivElement>>; export declare const SelectLabel: React.ForwardRefExoticComponent<ChakraSelect.LabelProps & React.RefAttributes<HTMLLabelElement>>; export declare const SelectItemText: React.ForwardRefExoticComponent<ChakraSelect.ItemTextProps & React.RefAttributes<HTMLDivElement>>; export interface SelectProps extends SelectRootProps { collection: ListCollection<SelectOption>; placeholder: string; portalled?: boolean; loading?: boolean; errorText?: string; contentProps?: SelectContentProps; } export declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLDivElement>>; export interface SelectAsyncProps extends Omit<SelectProps, 'collection'> { placeholder: string; portalled?: boolean; loading?: boolean; loadOptions: (input: string, currentValue: Array<string>) => Promise<ListCollection<SelectOption>>; extraControls?: React.ReactNode; } export declare const SelectAsync: React.ForwardRefExoticComponent<SelectAsyncProps & React.RefAttributes<HTMLDivElement>>; export {};