1 | import PropTypes from 'prop-types';
|
2 | import React, { ComponentType, FocusEvent, FocusEventHandler, HTMLProps, KeyboardEvent, MouseEvent, MouseEventHandler } from 'react';
|
3 | import { Option, OptionHandler } from '../types';
|
4 | export interface UseTokenProps<T> extends Omit<HTMLProps<T>, 'onBlur'> {
|
5 | onBlur?: (event: Event) => void;
|
6 | onClick?: MouseEventHandler<T>;
|
7 | onFocus?: FocusEventHandler<T>;
|
8 | onRemove?: OptionHandler;
|
9 | option: Option;
|
10 | }
|
11 | export declare function useToken<T extends HTMLElement>({ onBlur, onClick, onFocus, onRemove, option, ...props }: UseTokenProps<T>): {
|
12 | active: boolean;
|
13 | onBlur: (e: Event) => void;
|
14 | onClick: (e: MouseEvent<T>) => void;
|
15 | onFocus: (e: FocusEvent<T>) => void;
|
16 | onKeyDown: (e: KeyboardEvent<T>) => void;
|
17 | onRemove: (() => void) | undefined;
|
18 | ref: React.Dispatch<React.SetStateAction<T | null>>;
|
19 | };
|
20 | export declare function withToken<T extends UseTokenProps<HTMLElement>>(Component: ComponentType<T>): {
|
21 | (props: T): React.JSX.Element;
|
22 | displayName: string;
|
23 | propTypes: {
|
24 | onBlur: PropTypes.Requireable<(...args: any[]) => any>;
|
25 | onClick: PropTypes.Requireable<(...args: any[]) => any>;
|
26 | onFocus: PropTypes.Requireable<(...args: any[]) => any>;
|
27 | onRemove: PropTypes.Requireable<(...args: any[]) => any>;
|
28 | option: PropTypes.Validator<NonNullable<NonNullable<string | object | null | undefined>>>;
|
29 | };
|
30 | };
|