UNPKG

@sertec/button

Version:
44 lines (43 loc) 1.65 kB
import { ButtonHTMLAttributes, Ref, RefObject } from 'react'; import { Variant, Size, Justify, Rounded, StringBoolean, FontWeight, JustifyIcon, IconElement, Border, Rotate } from '@sertec/types'; export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> { ref?: RefObject<HTMLButtonElement> | Ref<HTMLButtonElement>; label?: string; variant?: Variant; size?: Size; outline?: boolean; 'data-justify'?: Justify; 'data-rounded'?: Rounded; 'data-border'?: Border; 'data-font-weight'?: FontWeight; 'data-font-variant'?: 'none' | Variant; 'data-menu-button'?: StringBoolean; 'data-footer-button'?: StringBoolean; 'data-shortcut'?: string; 'data-disabledcss-disabled'?: StringBoolean; 'data-active-disabled'?: StringBoolean; 'data-focus-disabled'?: StringBoolean; 'data-hover-disabled'?: StringBoolean; 'data-hover-bg-disabled'?: StringBoolean; 'data-padding-x-disabled'?: StringBoolean; 'data-padding-y-disabled'?: StringBoolean; } export interface IconButtonProps extends ButtonProps { icon?: IconElement; 'data-justify-icon'?: JustifyIcon; 'data-rotate-icon'?: Rotate; } export interface MenuButtonProps extends ButtonProps { menu?: ButtonProps[]; } export interface ShortcutContextProps { refs: RefObject<HTMLElement>[] | Ref<HTMLElement>[]; refs_as_ref: RefObject<RefObject<HTMLElement>[] | Ref<HTMLElement>[]>; addRefs: (e: RefObject<HTMLElement>[] | Ref<HTMLElement>[]) => void; } export interface GlobalShortcuts { shortcut: string; click: () => void; preventDefault?: boolean; stopPropagation?: boolean; }