import { default as WJElement } from '../wje-element/element.js'; /** * @summary CopyButton is a custom web component that extends WJElement. * It provides a button that, when clicked, copies a specified text to the clipboard. * The text to be copied can be specified through the `value` attribute. * The CopyButton also supports keyboard interaction, copying the text when the space or enter key is pressed. * @documentation https://elements.webjet.sk/components/copy-button * @status stable * @augments WJElement * @attribute {string} for - The id of the element to copy content from. * @attribute {string} label - Accessible label for the button. Also used as fallback tooltip text when the `tooltip` attribute is present without a value. * @attribute {string} label-success - Text displayed in the tooltip after a successful copy. Used only when the `tooltip` attribute is present. * @attribute {string} tooltip - Enables the tooltip. When set to a string, the value is used as the default tooltip content. * @attribute {string} value - The text to be copied. * @slot - This is a default/unnamed slot. * @csspart button - Styles the button element. * @cssproperty --text-color - Controls the color of the text. * @cssproperty --background-color - Controls the background color of the button. * //@fires wje:copy-button - Dispatched when the button is clicked and the text is copied. * @tag wje-copy-button */ export default class CopyButton extends WJElement { /** * Getter for the cssStyleSheet property. * @returns {string} The CSS styles. */ static get cssStyleSheet(): string; /** * Getter for the observedAttributes property. * @returns {Array} An empty array. */ static get observedAttributes(): any[]; timeout: number; /** * Setter for the value property. * @param {string} value The value to be set. */ set value(value: string); /** * Getter for the value property. * @returns {string} The value of the value property. */ get value(): string; /** * Draws the ColorPicker element. * @returns {DocumentFragment} The created document fragment. */ draw(): DocumentFragment; _tooltipElement: HTMLElement; icon: HTMLElement; /** * Adds event listeners for the click, focus, and blur events. */ afterDraw(): void; /** * Sync ARIA attributes on host. */ syncAria(): void; /** * Handles the click event. * @param {Event} e The event object. */ clicked: (e: Event) => void; /** * Handles the keydown event. * @param {Event} e The event object. */ keydown: (e: Event) => void; /** * Handles the focus event. * @param {Event} e The event object. */ focused: (e: Event) => void; /** * Handles the blur event. * @param {Event} e The event object. */ blurred: (e: Event) => void; /** * Handles the copied event. * You can override this method to customize the behavior when the text is copied. */ copied: () => void; /** * Copies the specified text or node. * @param {HTMLElement} button The button element. */ copy(button: HTMLElement): Promise; /** * Copies the target content. * @param {HTMLElement} content The content to be copied. * @returns {Promise} A promise that resolves when the content is copied. */ copyTarget(content: HTMLElement): Promise; }