import { IEventEmitter } from '@breadstone/mosaik-elements'; import type { IRepeatedEventDetail } from '../../../events'; import { ButtonBaseElement } from '../Abstracts/ButtonBaseElement'; import type { IRepeatButtonElementProps } from './IRepeatButtonElementProps'; declare const RepeatButtonElement_base: (abstract new (...args: Array) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Reversible").IReversibleProps) & (abstract new (...args: Array) => import("../../../Behaviors/Orientable").IOrientableProps) & (abstract new (...args: Array) => import("../../../Behaviors/ContentAlignable").IContentAlignableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Fitable").IFitableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Busyable").IBusyableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Labelable").ILabelableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Iconable").IIconableProps) & typeof ButtonBaseElement & import("../../../Behaviors/Themeable").IThemeableCtor; /** * Repeat Button - An interactive button element designed to trigger an action repeatedly when held down. * * @description * The Repeat Button is an interactive UI element that allows users to trigger an action repeatedly by holding down * the button. This component is often used for actions that require continuous input, such as adjusting a value or * repeatedly executing a command. It provides a user-friendly way to perform actions in a continuous manner. * * @name Repeat Button * @element mosaik-repeat-button * @category Buttons * * @slot label - The label slot for text or labels inside the button. * @slot icon - The icon slot for placing an icon inside the button. * @slot overlay - The overlay slot (useful for badges or additional visual elements). * * @csspart button - The button part of the Repeat Button. * @csspart focusRing - The focus ring part of the Repeat Button. * @csspart ripple - The ripple effect part of the Repeat Button. * @csspart icon - The icon part of the Repeat Button. * @csspart label - The label part of the Repeat Button. * @csspart progressRing - The progress ring part of the Repeat Button. * * @cssprop {String} --repeat-button-font-family - The font family of the Repeat Button. * @cssprop {String} --repeat-button-font-size - The font size of the Repeat Button. * @cssprop {String} --repeat-button-font-line-height - The font line height of the Repeat Button. * @cssprop {String} --repeat-button-font-weight - The font weight of the Repeat Button. * @cssprop {String} --repeat-button-font-letter-spacing - The font letter spacing of the Repeat Button. * @cssprop {String} --repeat-button-font-text-decoration - The font text decoration of the Repeat Button. * @cssprop {String} --repeat-button-font-text-transform - The font text transform of the Repeat Button. * @cssprop {String} --repeat-button-padding-top - The padding top of the Repeat Button. * @cssprop {String} --repeat-button-padding-right - The padding right of the Repeat Button. * @cssprop {String} --repeat-button-padding-bottom - The padding bottom of the Repeat Button. * @cssprop {String} --repeat-button-padding-left - The padding left of the Repeat Button. * @cssprop {String} --repeat-button-gap - The gap between elements of the Repeat Button. * @cssprop {String} --repeat-button-transition-duration - The transition duration for the Repeat Button. * @cssprop {String} --repeat-button-transition-mode - The transition mode for the Repeat Button. * @cssprop {String} --repeat-button-transition-property - The transition property for the Repeat Button. * @cssprop {Color} --repeat-button-background-color - The background color of the Repeat Button. * @cssprop {Color} --repeat-button-border-color - The border color of the Repeat Button. * @cssprop {Color} --repeat-button-foreground-color - The foreground color of the Repeat Button. * @cssprop {String} --repeat-button-border-width - The border width of the Repeat Button. * @cssprop {String} --repeat-button-border-radius - The border radius of the Repeat Button. * @cssprop {String} --repeat-button-border-style - The border style of the Repeat Button. * @cssprop {String} --repeat-button-shadow - The shadow of the Repeat Button. * @cssprop {String} --focus-ring-outward-offset - The outward offset of the focus ring. * @cssprop {String} --repeat-button-line-height - The line height of the Repeat Button text. * * @fires repeated {RepeatedEvent} - Called when the button is repeated. * * @dependency {StackElement} mosaik-stack - The Stack component, used for layout management. * @dependency {IconElement} mosaik-icon - The Icon component, used for displaying the icon. * @dependency {RippleElement} mosaik-ripple - The Ripple component, used for the ripple effect. * @dependency {FocusRingElement} mosaik-focus-ring - The Focus Ring component, used for focus indication. * @dependency {TextElement} mosaik-text - The Text component, used for displaying the label text. * @dependency {ProgressRingElement} mosaik-progress-ring - The Progress Ring component, used for progress indication. * * @example * Basic repeat button: * ```html * * ``` * * @example * Repeat button with custom delay and interval: * ```html * * ``` * * @public */ export declare class RepeatButtonElement extends RepeatButtonElement_base implements IRepeatButtonElementProps { private _delay; private _interval; private _isMouseKeydown; private _delayHandler; private _intervalHandler; private _isRepeating; private _pointerDownSubscription; private _pointerUpSubscription; private _pointerCancelSubscription; private readonly _repeated; /** * @public */ constructor(); /** * Returns the `is` property. * The `is` property represents natural name of this element. * * @public * @static * @readonly */ static get is(): string; /** * Gets or sets the `delay` property. * * @public * @attr delay */ get delay(): number; set delay(value: number); /** * Gets or sets the `interval` property. * * @public * @attr interval */ get interval(): number; set interval(value: number); /** * Gets or sets the `isRepeating` property. * * @public * @readonly * @attr is-repeating */ get isRepeating(): boolean; /** * @private */ private set isRepeating(value); /** * Called when the button is repeated. * Provides reference to `IRepeatedEventDetail` as event detail. * * @public * @readonly * @eventProperty */ get repeated(): IEventEmitter; /** * @public * @override */ disconnectedCallback(): void; /** * @protected * @override */ protected onApplyTemplate(): void; /** * Emits the `repeated` event. * * @protected */ protected onRepeated(args: IRepeatedEventDetail): void; /** * @private */ private onPointerDown; /** * @private */ private release; } /** * @public */ export declare namespace RepeatButtonElement { type Props = IRepeatButtonElementProps; } /** * @public */ declare global { interface HTMLElementTagNameMap { 'mosaik-repeat-button': RepeatButtonElement; } } export {}; //# sourceMappingURL=RepeatButtonElement.d.ts.map