import type { ButtonHTMLAttributes } from 'vue'; import type { IconName } from '../Icon'; import type { SharedButtonType, SharedButtonAppearance, SharedButtonVariant, SharedButtonSize } from '../shared/button/types'; export type SbButtonProps = { label?: string; variant?: SharedButtonVariant; size?: SharedButtonSize; appearance?: SharedButtonAppearance; /** [type docs](https://www.w3schools.com/tags/att_button_type.asp) */ type?: SharedButtonType; isDisabled?: boolean; isLoading?: boolean; /** button takes the full width of the container */ isFullWidth?: boolean | null; descriptionTextId?: string; /** Icon name left of the label. You can use [lucide icons](https://lucide.dev/icons) or the the Storyblok icons */ icon?: IconName; /** Icon name right of the label. You can use [lucide icons](https://lucide.dev/icons) or custom Storyblok icons */ iconRight?: IconName; /** Align Button left to align with surrounding content. This is mainly for CLEAR button types, due to the lack of visible borders of button. */ alignLeft?: boolean; /** Button is in pressed state */ isPressed?: boolean | undefined; } & /* @vue-ignore */ ButtonHTMLAttributes; type __VLS_Slots = { /** * Adds a custom label. This can be a component or text. * Note: It is not intended that you add a custom icon here. * For Icon buttons, please use the SbIconButton. * For Accessibility puposes you will still need to add a descriptive label using the "label" prop. */ default(): unknown; pin?: (props: {}) => unknown; }; declare const __VLS_base: import("vue").DefineComponent any; }, string, import("vue").PublicProps, Readonly & Readonly<{ onClick?: ((event: MouseEvent) => any) | undefined; }>, { label: string; size: SharedButtonSize; type: SharedButtonType; variant: SharedButtonVariant; appearance: SharedButtonAppearance; icon: IconName; isDisabled: boolean; isLoading: boolean; isPressed: boolean; descriptionTextId: string; iconRight: IconName; isFullWidth: boolean | null; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>; declare const __VLS_export: __VLS_WithSlots; declare const _default: typeof __VLS_export; export default _default; type __VLS_WithSlots = T & { new (): { $slots: S; }; };