@wix/design-system
Version:
@wix/design-system
27 lines • 1.01 kB
TypeScript
import React from 'react';
type FocusableOptions = {
isFocusWithMouse?: boolean;
};
interface FocusOptions {
focusVisible?: boolean;
}
export type Triggers = {
blur: () => void;
focus: (options?: FocusOptions) => void;
};
export type WithFocusableProps<Element extends HTMLElement = HTMLElement> = {
disabled?: boolean;
onFocus?: (event: FocusEvent, triggers: Triggers) => void;
onBlur?: (event: FocusEvent, triggers: Triggers) => void;
ref?: React.RefObject<Element>;
className?: string;
};
export type InjectedFocusableProps<P extends {}, E = HTMLElement> = P & {
focusableOnFocus?: React.FocusEventHandler<E>;
focusableOnBlur?: React.FocusEventHandler<E>;
ref?: React.RefObject<E>;
className?: string;
};
export declare function withFocusable<T extends {}, E extends HTMLElement = HTMLElement>(Component: React.ComponentType<T>, options?: FocusableOptions): React.ComponentType<T & WithFocusableProps<E>>;
export {};
//# sourceMappingURL=Focusable.d.ts.map