@shakibdshy/react-button-pro
Version:
A flexible and feature-rich button component for React
677 lines (669 loc) • 46.1 kB
text/typescript
import * as react from 'react';
import react__default from 'react';
import { VariantProps } from 'class-variance-authority';
import { button, buttonGroup } from '@shakibdshy/tailwind-theme';
type ButtonColor = 'primary' | 'secondary' | 'info' | 'neutral' | 'error' | 'warning' | 'success';
type ButtonVariant = 'primary' | 'outline' | 'flat' | 'light' | 'ghost' | 'text';
type ButtonSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
type ButtonRounded = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'none';
type ButtonVariants = VariantProps<typeof button>;
interface RippleOptions {
hasRipple?: boolean;
rippleColor?: string;
rippleDuration?: number;
}
interface AriaButtonProps {
"aria-label"?: string;
"aria-describedby"?: string;
"aria-pressed"?: boolean;
"aria-expanded"?: boolean;
"aria-controls"?: string;
"aria-haspopup"?: boolean | "menu" | "dialog" | "listbox" | "tree" | "grid";
}
interface CommonProps extends ButtonVariants, AriaButtonProps, RippleOptions {
className?: string;
isDisabled?: boolean;
isLoading?: boolean;
spinner?: React.ReactNode;
children: React.ReactNode;
color?: ButtonColor;
variant?: ButtonVariant;
size?: ButtonSize;
rounded?: ButtonRounded;
spinnerColor?: ButtonColor | 'white';
}
interface ButtonAsButtonProps extends CommonProps {
as?: "button";
type?: "button" | "submit" | "reset";
}
type OmitCommonProps = Omit<CommonProps, "children" | keyof AriaButtonProps>;
type AnchorPropsWithoutColor = Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'color'>;
interface ButtonAsAnchorProps extends AnchorPropsWithoutColor, OmitCommonProps {
as: "a";
href: string;
}
type ButtonProps = ButtonAsButtonProps | ButtonAsAnchorProps;
declare const Button: react__default.ForwardRefExoticComponent<ButtonProps & react__default.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
type ButtonGroupVariants = VariantProps<typeof buttonGroup>;
interface ButtonGroupAriaProps {
"aria-label"?: string;
"aria-orientation"?: "horizontal" | "vertical";
role?: "group" | "toolbar";
}
interface ButtonGroupProps extends ButtonGroupVariants, ButtonGroupAriaProps {
className?: string;
children: react__default.ReactNode;
}
type UseButtonGroupProps = ButtonGroupProps;
declare function useButtonGroup(props: UseButtonGroupProps): {
groupProps: {
className: string;
"aria-label"?: string;
"aria-orientation"?: "horizontal" | "vertical";
role?: "group" | "toolbar";
};
children: react.ReactNode;
};
declare function ButtonGroup(props: UseButtonGroupProps): react__default.JSX.Element;
type UseButtonProps = ButtonProps;
declare function useButton(props: UseButtonProps): {
buttonProps: {
"aria-label"?: string;
"aria-describedby"?: string;
"aria-pressed"?: boolean;
"aria-expanded"?: boolean;
"aria-controls"?: string;
"aria-haspopup"?: boolean | "menu" | "dialog" | "listbox" | "tree" | "grid";
className: string;
} | {
href: string;
ping?: string | undefined | undefined;
role?: react.AriaRole | undefined;
"aria-label"?: string | undefined | undefined;
"aria-describedby"?: string | undefined | undefined;
"aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
"aria-expanded"?: (boolean | "true" | "false") | undefined;
"aria-controls"?: string | undefined | undefined;
"aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
download?: any;
hrefLang?: string | undefined | undefined;
media?: string | undefined | undefined;
target?: react.HTMLAttributeAnchorTarget | undefined;
referrerPolicy?: react.HTMLAttributeReferrerPolicy | undefined;
defaultChecked?: boolean | undefined | undefined;
defaultValue?: string | number | readonly string[] | undefined;
suppressContentEditableWarning?: boolean | undefined | undefined;
suppressHydrationWarning?: boolean | undefined | undefined;
accessKey?: string | undefined | undefined;
autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
autoFocus?: boolean | undefined | undefined;
contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
contextMenu?: string | undefined | undefined;
dir?: string | undefined | undefined;
draggable?: (boolean | "true" | "false") | undefined;
enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
hidden?: boolean | undefined | undefined;
id?: string | undefined | undefined;
lang?: string | undefined | undefined;
nonce?: string | undefined | undefined;
slot?: string | undefined | undefined;
spellCheck?: (boolean | "true" | "false") | undefined;
style?: react.CSSProperties | undefined;
tabIndex?: number | undefined | undefined;
title?: string | undefined | undefined;
translate?: "yes" | "no" | undefined | undefined;
radioGroup?: string | undefined | undefined;
about?: string | undefined | undefined;
content?: string | undefined | undefined;
datatype?: string | undefined | undefined;
inlist?: any;
prefix?: string | undefined | undefined;
property?: string | undefined | undefined;
rel?: string | undefined | undefined;
resource?: string | undefined | undefined;
rev?: string | undefined | undefined;
typeof?: string | undefined | undefined;
vocab?: string | undefined | undefined;
autoCorrect?: string | undefined | undefined;
autoSave?: string | undefined | undefined;
itemProp?: string | undefined | undefined;
itemScope?: boolean | undefined | undefined;
itemType?: string | undefined | undefined;
itemID?: string | undefined | undefined;
itemRef?: string | undefined | undefined;
results?: number | undefined | undefined;
security?: string | undefined | undefined;
unselectable?: "on" | "off" | undefined | undefined;
popover?: "" | "auto" | "manual" | undefined | undefined;
popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
popoverTarget?: string | undefined | undefined;
inert?: boolean | undefined | undefined;
inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
is?: string | undefined | undefined;
"aria-activedescendant"?: string | undefined | undefined;
"aria-atomic"?: (boolean | "true" | "false") | undefined;
"aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
"aria-braillelabel"?: string | undefined | undefined;
"aria-brailleroledescription"?: string | undefined | undefined;
"aria-busy"?: (boolean | "true" | "false") | undefined;
"aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
"aria-colcount"?: number | undefined | undefined;
"aria-colindex"?: number | undefined | undefined;
"aria-colindextext"?: string | undefined | undefined;
"aria-colspan"?: number | undefined | undefined;
"aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
"aria-description"?: string | undefined | undefined;
"aria-details"?: string | undefined | undefined;
"aria-disabled"?: (boolean | "true" | "false") | undefined;
"aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
"aria-errormessage"?: string | undefined | undefined;
"aria-flowto"?: string | undefined | undefined;
"aria-grabbed"?: (boolean | "true" | "false") | undefined;
"aria-hidden"?: (boolean | "true" | "false") | undefined;
"aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
"aria-keyshortcuts"?: string | undefined | undefined;
"aria-labelledby"?: string | undefined | undefined;
"aria-level"?: number | undefined | undefined;
"aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
"aria-modal"?: (boolean | "true" | "false") | undefined;
"aria-multiline"?: (boolean | "true" | "false") | undefined;
"aria-multiselectable"?: (boolean | "true" | "false") | undefined;
"aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
"aria-owns"?: string | undefined | undefined;
"aria-placeholder"?: string | undefined | undefined;
"aria-posinset"?: number | undefined | undefined;
"aria-readonly"?: (boolean | "true" | "false") | undefined;
"aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
"aria-required"?: (boolean | "true" | "false") | undefined;
"aria-roledescription"?: string | undefined | undefined;
"aria-rowcount"?: number | undefined | undefined;
"aria-rowindex"?: number | undefined | undefined;
"aria-rowindextext"?: string | undefined | undefined;
"aria-rowspan"?: number | undefined | undefined;
"aria-selected"?: (boolean | "true" | "false") | undefined;
"aria-setsize"?: number | undefined | undefined;
"aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
"aria-valuemax"?: number | undefined | undefined;
"aria-valuemin"?: number | undefined | undefined;
"aria-valuenow"?: number | undefined | undefined;
"aria-valuetext"?: string | undefined | undefined;
dangerouslySetInnerHTML?: {
__html: string | TrustedHTML;
} | undefined | undefined;
onCopy?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
onCopyCapture?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
onCut?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
onCutCapture?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
onPaste?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
onPasteCapture?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
onCompositionEnd?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
onCompositionEndCapture?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
onCompositionStart?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
onCompositionStartCapture?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
onCompositionUpdate?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
onCompositionUpdateCapture?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
onFocus?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
onFocusCapture?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
onBlur?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
onBlurCapture?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
onChange?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onChangeCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onBeforeInput?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onBeforeInputCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onInput?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onInputCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onReset?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onResetCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onSubmit?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onSubmitCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onInvalid?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onInvalidCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onLoad?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onLoadCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onError?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onErrorCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onKeyDown?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
onKeyDownCapture?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
onKeyPress?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
onKeyPressCapture?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
onKeyUp?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
onKeyUpCapture?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
onAbort?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onAbortCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onCanPlay?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onCanPlayCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onCanPlayThrough?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onCanPlayThroughCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onDurationChange?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onDurationChangeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onEmptied?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onEmptiedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onEncrypted?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onEncryptedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onEnded?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onEndedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onLoadedData?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onLoadedDataCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onLoadedMetadata?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onLoadedMetadataCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onLoadStart?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onLoadStartCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onPause?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onPauseCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onPlay?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onPlayCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onPlaying?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onPlayingCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onProgress?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onProgressCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onRateChange?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onRateChangeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onResize?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onResizeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onSeeked?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onSeekedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onSeeking?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onSeekingCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onStalled?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onStalledCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onSuspend?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onSuspendCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onTimeUpdate?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onTimeUpdateCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onVolumeChange?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onVolumeChangeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onWaiting?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onWaitingCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onAuxClick?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onAuxClickCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onClick?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onClickCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onContextMenu?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onContextMenuCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onDoubleClick?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onDoubleClickCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onDrag?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragEnd?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragEndCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragEnter?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragEnterCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragExit?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragExitCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragLeave?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragLeaveCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragOver?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragOverCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragStart?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragStartCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDrop?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDropCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onMouseDown?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseDownCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseEnter?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseLeave?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseMove?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseMoveCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseOut?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseOutCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseOver?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseOverCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseUp?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseUpCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onSelect?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onSelectCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onTouchCancel?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
onTouchCancelCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
onTouchEnd?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
onTouchEndCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
onTouchMove?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
onTouchMoveCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
onTouchStart?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
onTouchStartCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
onPointerDown?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerDownCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerMove?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerMoveCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerUp?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerUpCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerCancel?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerCancelCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerEnter?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerLeave?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerOver?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerOverCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerOut?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerOutCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onGotPointerCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onGotPointerCaptureCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onLostPointerCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onLostPointerCaptureCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onScroll?: react.UIEventHandler<HTMLAnchorElement> | undefined;
onScrollCapture?: react.UIEventHandler<HTMLAnchorElement> | undefined;
onWheel?: react.WheelEventHandler<HTMLAnchorElement> | undefined;
onWheelCapture?: react.WheelEventHandler<HTMLAnchorElement> | undefined;
onAnimationStart?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
onAnimationStartCapture?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
onAnimationEnd?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
onAnimationEndCapture?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
onAnimationIteration?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
onAnimationIterationCapture?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
onToggle?: react.ToggleEventHandler<HTMLAnchorElement> | undefined;
onBeforeToggle?: react.ToggleEventHandler<HTMLAnchorElement> | undefined;
onTransitionCancel?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
onTransitionCancelCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
onTransitionEnd?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
onTransitionEndCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
onTransitionRun?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
onTransitionRunCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
onTransitionStart?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
onTransitionStartCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
className: string;
} | {
type: string | undefined;
disabled: boolean | undefined;
"aria-label"?: string;
"aria-describedby"?: string;
"aria-pressed"?: boolean;
"aria-expanded"?: boolean;
"aria-controls"?: string;
"aria-haspopup"?: boolean | "menu" | "dialog" | "listbox" | "tree" | "grid";
className: string;
} | {
type: string | undefined;
disabled: boolean | undefined;
href: string;
ping?: string | undefined | undefined;
role?: react.AriaRole | undefined;
"aria-label"?: string | undefined | undefined;
"aria-describedby"?: string | undefined | undefined;
"aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
"aria-expanded"?: (boolean | "true" | "false") | undefined;
"aria-controls"?: string | undefined | undefined;
"aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
download?: any;
hrefLang?: string | undefined | undefined;
media?: string | undefined | undefined;
target?: react.HTMLAttributeAnchorTarget | undefined;
referrerPolicy?: react.HTMLAttributeReferrerPolicy | undefined;
defaultChecked?: boolean | undefined | undefined;
defaultValue?: string | number | readonly string[] | undefined;
suppressContentEditableWarning?: boolean | undefined | undefined;
suppressHydrationWarning?: boolean | undefined | undefined;
accessKey?: string | undefined | undefined;
autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
autoFocus?: boolean | undefined | undefined;
contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
contextMenu?: string | undefined | undefined;
dir?: string | undefined | undefined;
draggable?: (boolean | "true" | "false") | undefined;
enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
hidden?: boolean | undefined | undefined;
id?: string | undefined | undefined;
lang?: string | undefined | undefined;
nonce?: string | undefined | undefined;
slot?: string | undefined | undefined;
spellCheck?: (boolean | "true" | "false") | undefined;
style?: react.CSSProperties | undefined;
tabIndex?: number | undefined | undefined;
title?: string | undefined | undefined;
translate?: "yes" | "no" | undefined | undefined;
radioGroup?: string | undefined | undefined;
about?: string | undefined | undefined;
content?: string | undefined | undefined;
datatype?: string | undefined | undefined;
inlist?: any;
prefix?: string | undefined | undefined;
property?: string | undefined | undefined;
rel?: string | undefined | undefined;
resource?: string | undefined | undefined;
rev?: string | undefined | undefined;
typeof?: string | undefined | undefined;
vocab?: string | undefined | undefined;
autoCorrect?: string | undefined | undefined;
autoSave?: string | undefined | undefined;
itemProp?: string | undefined | undefined;
itemScope?: boolean | undefined | undefined;
itemType?: string | undefined | undefined;
itemID?: string | undefined | undefined;
itemRef?: string | undefined | undefined;
results?: number | undefined | undefined;
security?: string | undefined | undefined;
unselectable?: "on" | "off" | undefined | undefined;
popover?: "" | "auto" | "manual" | undefined | undefined;
popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
popoverTarget?: string | undefined | undefined;
inert?: boolean | undefined | undefined;
inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
is?: string | undefined | undefined;
"aria-activedescendant"?: string | undefined | undefined;
"aria-atomic"?: (boolean | "true" | "false") | undefined;
"aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
"aria-braillelabel"?: string | undefined | undefined;
"aria-brailleroledescription"?: string | undefined | undefined;
"aria-busy"?: (boolean | "true" | "false") | undefined;
"aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
"aria-colcount"?: number | undefined | undefined;
"aria-colindex"?: number | undefined | undefined;
"aria-colindextext"?: string | undefined | undefined;
"aria-colspan"?: number | undefined | undefined;
"aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
"aria-description"?: string | undefined | undefined;
"aria-details"?: string | undefined | undefined;
"aria-disabled"?: (boolean | "true" | "false") | undefined;
"aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
"aria-errormessage"?: string | undefined | undefined;
"aria-flowto"?: string | undefined | undefined;
"aria-grabbed"?: (boolean | "true" | "false") | undefined;
"aria-hidden"?: (boolean | "true" | "false") | undefined;
"aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
"aria-keyshortcuts"?: string | undefined | undefined;
"aria-labelledby"?: string | undefined | undefined;
"aria-level"?: number | undefined | undefined;
"aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
"aria-modal"?: (boolean | "true" | "false") | undefined;
"aria-multiline"?: (boolean | "true" | "false") | undefined;
"aria-multiselectable"?: (boolean | "true" | "false") | undefined;
"aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
"aria-owns"?: string | undefined | undefined;
"aria-placeholder"?: string | undefined | undefined;
"aria-posinset"?: number | undefined | undefined;
"aria-readonly"?: (boolean | "true" | "false") | undefined;
"aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
"aria-required"?: (boolean | "true" | "false") | undefined;
"aria-roledescription"?: string | undefined | undefined;
"aria-rowcount"?: number | undefined | undefined;
"aria-rowindex"?: number | undefined | undefined;
"aria-rowindextext"?: string | undefined | undefined;
"aria-rowspan"?: number | undefined | undefined;
"aria-selected"?: (boolean | "true" | "false") | undefined;
"aria-setsize"?: number | undefined | undefined;
"aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
"aria-valuemax"?: number | undefined | undefined;
"aria-valuemin"?: number | undefined | undefined;
"aria-valuenow"?: number | undefined | undefined;
"aria-valuetext"?: string | undefined | undefined;
dangerouslySetInnerHTML?: {
__html: string | TrustedHTML;
} | undefined | undefined;
onCopy?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
onCopyCapture?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
onCut?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
onCutCapture?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
onPaste?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
onPasteCapture?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
onCompositionEnd?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
onCompositionEndCapture?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
onCompositionStart?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
onCompositionStartCapture?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
onCompositionUpdate?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
onCompositionUpdateCapture?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
onFocus?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
onFocusCapture?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
onBlur?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
onBlurCapture?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
onChange?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onChangeCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onBeforeInput?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onBeforeInputCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onInput?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onInputCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onReset?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onResetCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onSubmit?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onSubmitCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onInvalid?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onInvalidCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
onLoad?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onLoadCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onError?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onErrorCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onKeyDown?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
onKeyDownCapture?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
onKeyPress?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
onKeyPressCapture?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
onKeyUp?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
onKeyUpCapture?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
onAbort?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onAbortCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onCanPlay?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onCanPlayCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onCanPlayThrough?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onCanPlayThroughCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onDurationChange?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onDurationChangeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onEmptied?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onEmptiedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onEncrypted?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onEncryptedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onEnded?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onEndedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onLoadedData?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onLoadedDataCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onLoadedMetadata?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onLoadedMetadataCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onLoadStart?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onLoadStartCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onPause?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onPauseCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onPlay?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onPlayCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onPlaying?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onPlayingCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onProgress?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onProgressCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onRateChange?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onRateChangeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onResize?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onResizeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onSeeked?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onSeekedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onSeeking?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onSeekingCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onStalled?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onStalledCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onSuspend?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onSuspendCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onTimeUpdate?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onTimeUpdateCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onVolumeChange?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onVolumeChangeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onWaiting?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onWaitingCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onAuxClick?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onAuxClickCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onClick?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onClickCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onContextMenu?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onContextMenuCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onDoubleClick?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onDoubleClickCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onDrag?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragEnd?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragEndCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragEnter?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragEnterCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragExit?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragExitCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragLeave?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragLeaveCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragOver?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragOverCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragStart?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDragStartCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDrop?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onDropCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
onMouseDown?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseDownCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseEnter?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseLeave?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseMove?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseMoveCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseOut?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseOutCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseOver?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseOverCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseUp?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onMouseUpCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
onSelect?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onSelectCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
onTouchCancel?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
onTouchCancelCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
onTouchEnd?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
onTouchEndCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
onTouchMove?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
onTouchMoveCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
onTouchStart?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
onTouchStartCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
onPointerDown?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerDownCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerMove?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerMoveCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerUp?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerUpCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerCancel?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerCancelCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerEnter?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerLeave?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerOver?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerOverCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerOut?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onPointerOutCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onGotPointerCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onGotPointerCaptureCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onLostPointerCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onLostPointerCaptureCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
onScroll?: react.UIEventHandler<HTMLAnchorElement> | undefined;
onScrollCapture?: react.UIEventHandler<HTMLAnchorElement> | undefined;
onWheel?: react.WheelEventHandler<HTMLAnchorElement> | undefined;
onWheelCapture?: react.WheelEventHandler<HTMLAnchorElement> | undefined;
onAnimationStart?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
onAnimationStartCapture?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
onAnimationEnd?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
onAnimationEndCapture?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
onAnimationIteration?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
onAnimationIterationCapture?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
onToggle?: react.ToggleEventHandler<HTMLAnchorElement> | undefined;
onBeforeToggle?: react.ToggleEventHandler<HTMLAnchorElement> | undefined;
onTransitionCancel?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
onTransitionCancelCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
onTransitionEnd?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
onTransitionEndCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
onTransitionRun?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
onTransitionRunCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
onTransitionStart?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
onTransitionStartCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
className: string;
};
isAnchor: boolean;
isLoading: boolean | undefined;
isDisabled: boolean | undefined;
spinner: react.ReactNode;
spinnerColor: "white" | ButtonColor | undefined;
children: react.ReactNode;
hasRipple: boolean;
rippleColor: string | undefined;
rippleDuration: number | undefined;
};
export { Button, type ButtonAsAnchorProps, type ButtonAsButtonProps, type ButtonColor, ButtonGroup, type ButtonGroupProps, type ButtonGroupVariants, type ButtonProps, type ButtonRounded, type ButtonSize, type ButtonVariant, type ButtonVariants, type CommonProps, type RippleOptions, type UseButtonProps, useButton, useButtonGroup };