UNPKG

@hashicorp/design-system-components

Version:
57 lines (56 loc) 2.38 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import Component from '@glimmer/component'; import { HdsCopyButtonSizeValues } from './types.ts'; import type { HdsCopyButtonSizes } from './types.ts'; import type { HdsButtonSignature } from '../../button/'; import type { HdsClipboardModifierSignature } from '../../../../modifiers/hds-clipboard.ts'; import type { HdsIconSignature } from '../../icon'; import type HdsIntlService from '../../../../services/hds-intl'; export declare const DEFAULT_SIZE = HdsCopyButtonSizeValues.Medium; export declare const SIZES: HdsCopyButtonSizes[]; export declare const DEFAULT_ICON = "clipboard-copy"; export declare const SUCCESS_ICON = "clipboard-checked"; export declare const ERROR_ICON = "clipboard-x"; export declare const DEFAULT_STATUS = "idle"; export interface HdsCopyButtonSignature { Args: HdsButtonSignature['Args'] & { size?: HdsCopyButtonSizes; textToCopy?: HdsClipboardModifierSignature['Args']['Named']['text']; targetToCopy?: HdsClipboardModifierSignature['Args']['Named']['target']; onSuccess?: HdsClipboardModifierSignature['Args']['Named']['onSuccess']; onError?: HdsClipboardModifierSignature['Args']['Named']['onError']; ariaMessageText?: string; }; Element: HdsButtonSignature['Element']; } export default class HdsCopyButton extends Component<HdsCopyButtonSignature> { hdsIntl: HdsIntlService; private _status; private _timer; /** * @param icon * @type {string} * @description The icon to be displayed for each status; automatically calculated based on the tracked property `status`. */ get icon(): HdsIconSignature['Args']['name']; /** * @param size * @type {string} * @default medium * @description The size of the copy/button; acceptable values are `small` and `medium` */ get size(): HdsCopyButtonSizes; /** * Get the class names to apply to the component. * @method CopyButton#classNames * @return {string} The "class" attribute to apply to the component. */ get classNames(): string; get ariaMessageText(): string; onSuccess(args: HdsClipboardModifierSignature['Args']['Named']['onSuccess']): void; onError(args: HdsClipboardModifierSignature['Args']['Named']['onError']): void; resetStatusDelayed(): void; }