/// import { ComponentProps, ExcludedProps, VariantProps } from "@vitality-ds/system"; import type { valueof } from "../helpers/logic/type-helpers"; import { ShortcutsProps } from "../Shortcuts/types"; import { BaseButton } from "./primitives/styled"; import { ButtonPrimitiveProps } from "./primitives/types"; declare type ButtonVariantOptions = valueof, "variant">>; declare type ButtonColorOptions = valueof, "color">>; declare type ButtonSpinnerColor = ButtonPrimitiveProps["spinnerColor"]; declare type Appearance = { color: ButtonColorOptions; variant: ButtonVariantOptions; spinnerColor: ButtonSpinnerColor; shortcutsVariant: ButtonPrimitiveProps["shortcutsVariant"]; }; export declare type Appearances = { onSurface: Appearance; standard: Appearance; primary: Appearance; destructive: Appearance; warning: Appearance; ghost: Appearance; link: Appearance; }; export declare type ButtonProps = ExcludedProps & ComponentProps & { /** * The visual appearance of the component. */ appearance?: keyof Appearances; /** * Text contents of the component. */ children: React.ReactNode; /** * @ignore */ color?: never; /** * The Icon to the left of the Button text. */ iconLeft?: React.ReactNode; /** * The Icon to the right of the Button text. */ iconRight?: React.ReactNode; /** * @ignore */ variant?: never; /** * Show a spinner as an overlay on the button when an asynchronous process is loading. Disables the button whilst `true` */ isLoading?: boolean; shortcut?: ShortcutsProps["keys"]; }; export {};