import * as i0 from '@angular/core'; import { EventEmitter, Renderer2, ElementRef } from '@angular/core'; import * as i1 from '@eui/components/shared'; import { BaseStatesDirective } from '@eui/components/shared'; import { BooleanInput } from '@angular/cdk/coercion'; /** * @description * A versatile button component that supports various states, sizes, and visual styles. * It can be used as a native ` * * * * ``` * * #### Icon button * ```html * * ``` * * #### CTA and block buttons * ```html * * * ``` * * #### Size variants * ```html * * * * ``` * * #### Disabled and checked states * ```html * * * ``` * * #### As link * ```html * Link Button * ``` * * ```ts * onButtonClick(button: EuiButtonComponent): void { * console.log('Button clicked:', button); * } * ``` * * ### Accessibility * - Native button/anchor semantics preserved for screen readers * - Keyboard accessible with Enter/Space (button) or Enter (link) * - euiIconButton requires aria-label for icon-only buttons * - Disabled state prevents interaction and is announced to screen readers * - Focus ring visible by default (remove with hasNoFocusRing if alternative focus indicator exists) * - isChecked state is visually indicated and announced * * ### Notes * - Use on `