import { ICheckable, ICheckableEvents } from '../../../Behaviors/Checkable'; import type { Appearance } from '../../../Types/Appearance'; import type { FlowDirection } from '../../../Types/FlowDirection'; import type { Variant } from '../../../Types/Variant'; import { ButtonBaseElement } from '../Abstracts/ButtonBaseElement'; import type { IToggleButtonElementProps } from './IToggleButtonElementProps'; declare const ToggleButtonElement_base: (abstract new (...args: Array) => import("../../../../Controls/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/Checkable").ICheckableProps & ICheckableEvents & ICheckable) & (abstract new (...args: Array) => import("../../../Behaviors/Labelable").ILabelableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Iconable").IIconableProps) & typeof ButtonBaseElement & import("../../../../Controls/Behaviors/Themeable").IThemeableCtor; /** * ToggleButton - An interactive button component that maintains a binary checked/unchecked state. * * @description * The ToggleButton component provides stateful toggle functionality with visual feedback, allowing * users to switch between two states (on/off, enabled/disabled, selected/deselected). It features * persistent state management with visual indicators for both checked and unchecked states, keyboard * accessibility for binary preference controls, and comprehensive event handling for state changes. * The component includes advanced features like ripple effects, focus rings, progress indicators, * and support for toggle button groups with inherited styling. It is ideal for settings panels, * view mode switchers, feature toggles, and any interface requiring binary choice controls with * clear visual state representation. * * @name ToggleButton * @element mosaik-toggle-button * @category Buttons * * @slot icon - Icon content area for visual state representation and identification * @slot label - Text label content area for button identification and description * @slot overlay - Overlay content area for badges, notifications, or additional state indicators * * @csspart button - The main toggle button element container * @csspart focusRing - The focus indicator ring for keyboard navigation accessibility * @csspart ripple - The touch feedback ripple effect container * @csspart innerStack - The internal stack layout container for organizing icon and label * @csspart icon - The icon display area within the button * @csspart label - The text label display area * @csspart progressRing - The busy state progress indicator * * @cssprop {String} --toggle-button-font-family - The font family for button text content * @cssprop {String} --toggle-button-font-size - The font size for button text * @cssprop {String} --toggle-button-font-line-height - The line height for button text * @cssprop {String} --toggle-button-font-weight - The font weight for button text * @cssprop {String} --toggle-button-font-letter-spacing - The letter spacing for button text * @cssprop {String} --toggle-button-font-text-decoration - The text decoration style for button text * @cssprop {String} --toggle-button-font-text-transform - The text transformation style for button text * @cssprop {String} --toggle-button-padding-top - The top padding inside the button * @cssprop {String} --toggle-button-padding-right - The right padding inside the button * @cssprop {String} --toggle-button-padding-bottom - The bottom padding inside the button * @cssprop {String} --toggle-button-padding-left - The left padding inside the button * @cssprop {String} --toggle-button-gap - The spacing between icon and label elements * @cssprop {String} --toggle-button-transition-duration - The duration of state change transitions * @cssprop {String} --toggle-button-transition-mode - The timing function for transitions * @cssprop {String} --toggle-button-transition-property - The CSS properties to animate during transitions * @cssprop {String} --toggle-button-foreground-color - The text and icon color * @cssprop {String} --toggle-button-background-color - The background fill color * @cssprop {String} --toggle-button-border-color - The border outline color * @cssprop {String} --toggle-button-border-width - The border thickness * @cssprop {String} --toggle-button-border-radius - The corner rounding radius * @cssprop {String} --toggle-button-border-style - The border line style * @cssprop {String} --toggle-button-shadow - The drop shadow or elevation effect * @cssprop {String} --toggle-button-width - The button width * @cssprop {String} --toggle-button-height - The button height * @cssprop {String} --toggle-button-min-width - The minimum button width * @cssprop {String} --toggle-button-min-height - The minimum button height * @cssprop {String} --toggle-button-line-height - The calculated line height for content alignment * @cssprop {String} --toggle-button-translate - The transform translation offset * @cssprop {String} --toggle-button-icon-min-width - The minimum width for icon display area * @cssprop {String} --toggle-button-icon-min-height - The minimum height for icon display area * @cssprop {String} --toggle-button-focus-ring-color - The focus ring color (from focusRing mixin) * @cssprop {String} --toggle-button-focus-ring-inward-offset - The focus ring inward offset (from focusRing mixin) * @cssprop {String} --toggle-button-focus-ring-outward-offset - The focus ring outward offset (from focusRing mixin) * @cssprop {String} --toggle-button-focus-ring-active-width - The focus ring width when active (from focusRing mixin) * @cssprop {String} --toggle-button-ripple-color - The ripple effect color (from ripple mixin) * @cssprop {String} --toggle-button-ripple-duration - The ripple effect animation duration (from ripple mixin) * * @fires checked {CheckedEvent} - Fired when the button transitions to checked state * @fires unchecked {UncheckedEvent} - Fired when the button transitions to unchecked state * @fires toggled {ToggledEvent} - Fired when the toggle state changes (either direction) * * @dependency {StackElement} - Layout container for organizing icon and label content * @dependency {IconElement} - Icon display component for state visual indicators * @dependency {RippleElement} - Touch feedback effect component for interactive response * @dependency {FocusRingElement} - Keyboard focus indicator component for accessibility * @dependency {TextElement} - Text rendering component for button labels * @dependency {ProgressRingElement} - Progress indicator component for busy states * * @example * Basic toggle button with slotted label: * ```html * * Enable Notifications * * ``` * * @example * Pre-checked toggle button with solid appearance: * ```html * * ``` * * @public */ export declare class ToggleButtonElement extends ToggleButtonElement_base implements IToggleButtonElementProps, ICheckable, ICheckableEvents { private readonly _inheritance; /** * @public */ constructor(); /** * Returns the `is` property. * The `is` property represents natural name of this element. * * @public * @static * @readonly */ static get is(): string; /** * @public * @override */ get disabled(): boolean; set disabled(value: boolean); /** * @public * @override */ get appearance(): Appearance; set appearance(value: Appearance); /** * @public * @override */ get variant(): Variant; set variant(value: Variant); /** * @public * @override */ get dir(): FlowDirection; set dir(value: FlowDirection); /** * Resets the element to its initial state. * * @public */ reset(): void; } /** * @public */ export declare namespace ToggleButtonElement { type Props = IToggleButtonElementProps; } /** * @public */ declare global { interface HTMLElementTagNameMap { 'mosaik-toggle-button': ToggleButtonElement; } } export {}; //# sourceMappingURL=ToggleButtonElement.d.ts.map