@hashicorp/design-system-components
Version:
Helios Design System Components
40 lines (39 loc) • 1.64 kB
TypeScript
/**
* Copyright IBM Corp. 2021, 2025
* SPDX-License-Identifier: MPL-2.0
*/
import Component from '@glimmer/component';
import { HdsButtonSizeValues, HdsButtonColorValues, HdsButtonIconPositionValues } from './types.ts';
import type { HdsButtonSizes, HdsButtonColors, HdsButtonIconPositions } from './types.ts';
import type { HdsInteractiveSignature } from '../interactive/index';
import type { HdsIconSignature } from '../icon/index';
export declare const SIZES: HdsButtonSizes[];
export declare const COLORS: HdsButtonColors[];
export declare const ICON_POSITIONS: HdsButtonIconPositions[];
export declare const DEFAULT_SIZE = HdsButtonSizeValues.Medium;
export declare const DEFAULT_COLOR = HdsButtonColorValues.Primary;
export declare const DEFAULT_ICON_POSITION = HdsButtonIconPositionValues.Leading;
export interface HdsButtonSignature {
Args: HdsInteractiveSignature['Args'] & {
size?: HdsButtonSizes;
color?: HdsButtonColors;
text: string;
icon?: HdsIconSignature['Args']['name'];
iconPosition?: HdsButtonIconPositions;
isIconOnly?: boolean;
isFullWidth?: boolean;
isInline?: boolean;
};
Element: HdsInteractiveSignature['Element'];
}
export default class HdsButton extends Component<HdsButtonSignature> {
get text(): string;
get size(): HdsButtonSizes;
get color(): HdsButtonColors;
get icon(): HdsIconSignature['Args']['name'] | undefined;
get isIconOnly(): boolean;
get iconPosition(): HdsButtonIconPositions;
get iconSize(): HdsIconSignature['Args']['size'];
get isFullWidth(): boolean;
get classNames(): string;
}