@sertec/button
Version:
Sfera Button Component
44 lines (43 loc) • 1.65 kB
TypeScript
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;
}