/** * @license * Copyright 2023 Nuraly, Laabidi Aymen * SPDX-License-Identifier: MIT */ import { LitElement } from 'lit'; type Constructor = new (...args: any[]) => T; /** * Interface for components that support clickable icon functionality */ export interface ClickableCapable { /** * Whether the icon is clickable/interactive */ clickable: boolean; /** * Whether the icon is disabled */ disabled: boolean; /** * Handle click events on the icon */ handleIconClick(event: MouseEvent): void; /** * Handle keyboard events for accessibility */ handleIconKeydown(event: KeyboardEvent): void; /** * Get appropriate role for accessibility */ getIconRole(): string; /** * Get appropriate tabindex for accessibility */ getIconTabIndex(): string; /** * Get appropriate aria-disabled attribute */ getAriaDisabled(): string | undefined; } /** * Mixin that provides clickable icon functionality with proper event handling * and accessibility support. * * @param superClass - The base class to extend * @returns Enhanced class with clickable capabilities * * @example * ```typescript * export class IconComponent extends ClickableMixin(NuralyUIBaseMixin(LitElement)) { * // Component implementation * } * ``` */ export declare const ClickableMixin: >(superClass: T) => Constructor & T; export {}; //# sourceMappingURL=clickable-mixin.d.ts.map