@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
TypeScript
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 {};