import * as i0 from '@angular/core';
import { EventEmitter, inject, Renderer2, ElementRef, booleanAttribute, HostListener, Output, Input, HostBinding, ChangeDetectionStrategy, Component } from '@angular/core';
import * as i1 from '@eui/components/shared';
import { BaseStatesDirective } from '@eui/components/shared';
import { coerceBooleanProperty } from '@angular/cdk/coercion';

/**
 * @description
 * A versatile button component that supports various states, sizes, and visual styles.
 * It can be used as a native `<button>` or `<a>` element while preserving consistent EUI behavior and styling.
 *
 * @usageNotes
 * #### Basic buttons with variants
 * ```html
 * <button euiButton>Default</button>
 * <button euiButton euiPrimary>Primary</button>
 * <button euiButton euiSecondary>Secondary</button>
 * <button euiButton euiSuccess>Success</button>
 * ```
 *
 * #### Icon button
 * ```html
 * <button euiButton euiIconButton aria-label="Notifications">
 *   <eui-icon-svg icon="bell:outline"></eui-icon-svg>
 * </button>
 * ```
 *
 * #### CTA and block buttons
 * ```html
 * <button euiButton euiCTAButton>Call to Action</button>
 * <button euiButton euiBlockButton>Full Width</button>
 * ```
 *
 * #### Size variants
 * ```html
 * <button euiButton euiSizeS>Small</button>
 * <button euiButton euiSizeM>Medium</button>
 * <button euiButton euiSizeL>Large</button>
 * ```
 *
 * #### Disabled and checked states
 * ```html
 * <button euiButton [euiDisabled]="true">Disabled</button>
 * <button euiButton [isChecked]="true">Checked</button>
 * ```
 *
 * #### As link
 * ```html
 * <a euiButton href="/page">Link Button</a>
 * ```
 *
 * ```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 `<button>` or `<a>` elements via euiButton attribute
 * - Color variants: euiPrimary, euiBranding, euiSecondary, euiSuccess, euiInfo, euiWarning, euiDanger, euiInverse
 * - Size variants: euiSizeXS, euiSizeS, euiSizeM (default), euiSizeL
 * - euiBasicButton removes background for minimal styling
 * - euiCTAButton applies prominent call-to-action styling
 * - euiBlockButton makes button full-width
 * - euiIconButton optimizes layout for icon-only content
 * - euiAvatarButton styles for avatar dropdown triggers
 * - euiLineWrap allows multi-line button text
 * - isCompact reduces padding and dimensions
 * - euiOutline applies outline/ghost styling
 * - euiRounded applies rounded corners
 * - euiResponsive adjusts sizing based on viewport
 * - euiStart/euiEnd aligns content within button
 * - buttonClick event emits component instance on click
 */
class EuiButtonComponent {
    constructor() {
        /**
         * @description Data attribute for e2e testing
         * @default eui-button
         */
        this.e2eAttr = 'eui-button';
        /**
         * @description When true, applies basic styling without background
         * @default false
         */
        this.euiBasicButton = false;
        /**
         * @description When true, styles the button as a call-to-action
         * @default false
         */
        this.euiCTAButton = false;
        /**
         * @description When true, makes the button full-width
         * @default false
         */
        this.euiBlockButton = false;
        /**
         * @description When true, styles the button for icon-only content
         * @default false
         */
        this.euiIconButton = false;
        /**
         * @description When true, style the button when used in avatar trigger (for dropdown trigger f.e. see actionable avatar)
         * @default false
         */
        this.euiAvatarButton = false;
        /**
         * @description When true, allows text content to wrap
         * @default false
         */
        this.euiLineWrap = false;
        /**
         * @description When true, applies styling with lower padding / reduced height and width
         * @default false
         */
        this.isCompact = false;
        /**
         * @description When true, applies styling without focus ring
         * @default false
         */
        this.hasNoFocusRing = false;
        /**
         * @description
         * Event emitted when the button is clicked
         * Emits the button component instance
         */
        this.buttonClick = new EventEmitter();
        this.baseStatesDirective = inject(BaseStatesDirective);
        this._renderer = inject(Renderer2);
        this._elementRef = inject(ElementRef);
        this._isChecked = false;
        this._euiDisabled = false;
    }
    /**
     * @description
     * Computes and returns the CSS classes for the button based on its current state
     *
     * @returns {string} Space-separated string of CSS class names
     */
    get cssClasses() {
        return [
            this.baseStatesDirective.getCssClasses('eui-button'),
            this.euiBasicButton ? 'eui-button--basic eui--basic' : '',
            this.euiBlockButton ? 'eui-button--block' : '',
            this.euiIconButton ? 'eui-button--icon-only' : '',
            this.euiLineWrap ? 'eui-button--line-wrap' : '',
            this.hasNoFocusRing ? 'eui-button--no-focus-ring' : '',
            this.isCompact ? 'eui-button--compact' : '',
            this.euiCTAButton ? 'eui-button--cta' : '',
            this.euiAvatarButton ? 'eui-button--avatar' : '',
        ]
            .join(' ')
            .trim();
    }
    /**
     * @description
     * Controls the checked state of the button
     * When true, applies accent styling
     */
    get isChecked() {
        return this._isChecked;
    }
    set isChecked(value) {
        this.baseStatesDirective.euiPrimary = coerceBooleanProperty(value);
        this.baseStatesDirective.euiOutline = coerceBooleanProperty(!value);
        this._isChecked = coerceBooleanProperty(value);
    }
    /**
     * @description
     * Controls the disabled state of the button
     * When true, adds the disabled attribute and prevents interaction
     */
    get euiDisabled() {
        return this._euiDisabled;
    }
    set euiDisabled(value) {
        this._euiDisabled = coerceBooleanProperty(value);
        if (this._euiDisabled) {
            this._renderer.setAttribute(this._elementRef.nativeElement, 'disabled', 'true');
        }
        else {
            this._renderer.removeAttribute(this._elementRef.nativeElement, 'disabled');
        }
    }
    /**
     * @description
     * Click event handler that emits the buttonClick event
     * @private
     */
    onClick() {
        this.buttonClick.emit(this);
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: EuiButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.2.16", type: EuiButtonComponent, isStandalone: true, selector: "button[euiButton], a[euiButton]", inputs: { e2eAttr: "e2eAttr", id: "id", euiBasicButton: ["euiBasicButton", "euiBasicButton", booleanAttribute], euiCTAButton: ["euiCTAButton", "euiCTAButton", booleanAttribute], euiBlockButton: ["euiBlockButton", "euiBlockButton", booleanAttribute], euiIconButton: ["euiIconButton", "euiIconButton", booleanAttribute], euiAvatarButton: ["euiAvatarButton", "euiAvatarButton", booleanAttribute], euiLineWrap: ["euiLineWrap", "euiLineWrap", booleanAttribute], isCompact: ["isCompact", "isCompact", booleanAttribute], hasNoFocusRing: ["hasNoFocusRing", "hasNoFocusRing", booleanAttribute], isChecked: "isChecked", euiDisabled: "euiDisabled" }, outputs: { buttonClick: "buttonClick" }, host: { listeners: { "click": "onClick()" }, properties: { "class": "this.cssClasses", "attr.data-e2e": "this.e2eAttr", "attr.id": "this.id" } }, hostDirectives: [{ directive: i1.BaseStatesDirective, inputs: ["euiPrimary", "euiPrimary", "euiBranding", "euiBranding", "euiSecondary", "euiSecondary", "euiSuccess", "euiSuccess", "euiInfo", "euiInfo", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiInverse", "euiInverse", "euiVariant", "euiVariant", "euiSizeXS", "euiSizeXS", "euiSizeS", "euiSizeS", "euiSizeM", "euiSizeM", "euiSizeL", "euiSizeL", "euiSizeVariant", "euiSizeVariant", "euiOutline", "euiOutline", "euiRounded", "euiRounded", "euiResponsive", "euiResponsive", "euiStart", "euiStart", "euiEnd", "euiEnd"] }], ngImport: i0, template: "<span class=\"eui-button__container\">\n    <ng-content></ng-content>\n</span>\n", styles: [".eui-21 :host.eui-button{--_color: var(--eui-c-secondary);--_basic-color: var(--eui-c-secondary);--_bg-color: var(--eui-c-secondary-surface-light);--_on-bg-color: var(--eui-c-secondary-on-surface-light);--_border-color: var(--eui-c-secondary-border);--_outline-border-color: var(--eui-c-secondary-border);--_hover-color: var(--eui-c-secondary-surface-light-hover);--_on-hover-color: var(--eui-c-secondary);--_basic-bg-color: transparent;--_basic-hover-color: var(--eui-c-secondary-surface-light-hover);--_on-basic-hover-color: var(--eui-c-secondary);--_outline-color: var(--eui-c-secondary);--_outline-bg-color: var(--eui-c-white);--_outline-hover-color: var(--eui-c-secondary-surface-light-hover);--_on-outline-hover-color: var(--eui-c-secondary);--_font-s: var(--eui-f-s-medium);--_font-m: var(--eui-f-m-medium);--_font-l: var(--eui-f-m-medium)}.eui-21 :host.eui-button--branding{--_color: var(--eui-c-branding);--_bg-color: var(--eui-c-branding-surface-light);--_on-bg-color: var(--eui-c-branding-on-surface-light);--_border-color: var(--eui-c-branding);--_outline-border-color: var(--eui-c-white);--_hover-color: var(--eui-c-white);--_on-hover-color: var(--eui-c-branding);--_basic-color: var(--eui-c-white);--_basic-bg-color: var(--eui-c-branding);--_basic-hover-color: var(--eui-c-branding-surface-light);--_on-basic-hover-color: var(--eui-c-branding-on-surface-light);--_outline-color: var(--eui-c-white);--_outline-bg-color: var(--eui-c-branding);--_outline-hover-color: var(--eui-c-branding-surface-light);--_on-outline-hover-color: var(--eui-c-branding-on-surface-light)}.eui-21 :host.eui-button--primary{--_color: var(--eui-c-primary);--_basic-color: var(--eui-c-primary);--_bg-color: var(--eui-c-primary-surface);--_on-bg-color: var(--eui-c-primary-on-surface);--_border-color: var(--eui-c-primary);--_outline-border-color: var(--eui-c-primary);--_hover-color: var(--eui-c-primary-surface-hover);--_on-hover-color: var(--eui-c-primary-on-surface-hover);--_basic-bg-color: transparent;--_basic-hover-color: var(--eui-c-primary-surface-light);--_on-basic-hover-color: var(--eui-c-primary);--_outline-color: var(--eui-c-primary);--_outline-bg-color: var(--eui-c-white);--_outline-hover-color: var(--eui-c-primary-surface-light);--_on-outline-hover-color: var(--eui-c-primary)}.eui-21 :host.eui-button--cta{--_color: var(--eui-c-cta);--_basic-color: var(--eui-c-cta);--_bg-color: var(--eui-c-cta-surface);--_on-bg-color: var(--eui-c-cta-on-surface);--_border-color: transparent;--_outline-border-color: var(--eui-c-cta);--_hover-color: var(--eui-c-cta-surface-hover);--_on-hover-color: var(--eui-c-cta-on-surface-hover);--_basic-bg-color: transparent;--_basic-hover-color: var(--eui-c-cta-surface-light);--_on-basic-hover-color: var(--eui-c-cta);--_outline-color: var(--eui-c-cta);--_outline-bg-color: var(--eui-c-white);--_outline-hover-color: var(--eui-c-cta-surface-light);--_on-outline-hover-color: var(--eui-c-cta)}.eui-21 :host.eui-button--info{--_color: var(--eui-c-info);--_basic-color: var(--eui-c-info);--_bg-color: var(--eui-c-info-surface);--_on-bg-color: var(--eui-c-info-on-surface);--_border-color: var(--eui-c-info);--_outline-border-color: var(--eui-c-info);--_hover-color: var(--eui-c-info-surface-hover);--_on-hover-color: var(--eui-c-info-on-surface-hover);--_basic-bg-color: transparent;--_basic-hover-color: var(--eui-c-info-surface-light);--_on-basic-hover-color: var(--eui-c-info);--_outline-color: var(--eui-c-info);--_outline-bg-color: var(--eui-c-white);--_outline-hover-color: var(--eui-c-info-surface-light);--_on-outline-hover-color: var(--eui-c-info)}.eui-21 :host.eui-button--success{--_color: var(--eui-c-success);--_basic-color: var(--eui-c-success);--_bg-color: var(--eui-c-success-surface);--_on-bg-color: var(--eui-c-success-on-surface);--_border-color: var(--eui-c-success);--_outline-border-color: var(--eui-c-success);--_hover-color: var(--eui-c-success-surface-hover);--_on-hover-color: var(--eui-c-success-on-surface-hover);--_basic-bg-color: transparent;--_basic-hover-color: var(--eui-c-success-surface-light);--_on-basic-hover-color: var(--eui-c-success);--_outline-color: var(--eui-c-success);--_outline-bg-color: var(--eui-c-white);--_outline-hover-color: var(--eui-c-success-surface-light);--_on-outline-hover-color: var(--eui-c-success)}.eui-21 :host.eui-button--warning{--_color: var(--eui-c-warning);--_basic-color: var(--eui-c-warning);--_bg-color: var(--eui-c-warning-surface);--_on-bg-color: var(--eui-c-warning-on-surface);--_border-color: var(--eui-c-warning);--_outline-border-color: var(--eui-c-warning);--_hover-color: var(--eui-c-warning-surface-hover);--_on-hover-color: var(--eui-c-warning-on-surface-hover);--_basic-bg-color: transparent;--_basic-hover-color: var(--eui-c-warning-surface-light);--_on-basic-hover-color: var(--eui-c-warning);--_outline-color: var(--eui-c-warning);--_outline-bg-color: var(--eui-c-white);--_outline-hover-color: var(--eui-c-warning-surface-light);--_on-outline-hover-color: var(--eui-c-warning)}.eui-21 :host.eui-button--danger{--_color: var(--eui-c-danger);--_basic-color: var(--eui-c-danger);--_bg-color: var(--eui-c-danger-surface);--_on-bg-color: var(--eui-c-danger-on-surface);--_border-color: var(--eui-c-danger);--_outline-border-color: var(--eui-c-danger);--_hover-color: var(--eui-c-danger-surface-hover);--_on-hover-color: var(--eui-c-danger-on-surface-hover);--_basic-bg-color: transparent;--_basic-hover-color: var(--eui-c-danger-surface-light);--_on-basic-hover-color: var(--eui-c-danger);--_outline-color: var(--eui-c-danger);--_outline-bg-color: var(--eui-c-white);--_outline-hover-color: var(--eui-c-danger-surface-light);--_on-outline-hover-color: var(--eui-c-danger)}.eui-21 :host.eui-button{align-items:center;background-image:none;border:var(--eui-bw-none);border-radius:var(--eui-br-s);box-sizing:border-box;cursor:pointer;display:inline-flex;flex-shrink:0;justify-content:center;outline:none;text-transform:none;transition:none;vertical-align:middle;white-space:nowrap;font:var(--_font-m);padding:calc(var(--eui-s-xs) - 1px) calc(var(--eui-s-m) - 1px)}.eui-21 :host.eui-button:focus-visible:not([readonly]){outline:var(--eui-bw-s) solid var(--eui-c-primary-border)!important;outline-offset:1px!important;border-radius:var(--eui-br-xs)!important}.eui-21 :host.eui-button .eui-button__container{align-items:center;display:inline-flex;position:relative;gap:var(--eui-s-xs);justify-content:center;width:100%}.eui-21 :host.eui-button{background-color:var(--_bg-color);color:var(--_on-bg-color);border:var(--eui-bw-xs) solid var(--_border-color)}.eui-21 :host.eui-button ::ng-deep .eui-icon-svg svg{fill:var(--_on-bg-color);color:var(--_on-bg-color)}.eui-21 :host.eui-button:hover,.eui-21 :host.eui-button:focus{background-color:var(--_hover-color);color:var(--_on-hover-color)}.eui-21 :host.eui-button:hover ::ng-deep .eui-icon-svg svg,.eui-21 :host.eui-button:focus ::ng-deep .eui-icon-svg svg{fill:var(--_on-bg-color);color:var(--_on-bg-color)}.eui-21 :host.eui-button.eui-button--basic{border:var(--eui-bw-none);box-shadow:none;background-color:var(--_basic-bg-color);color:var(--_basic-color)}.eui-21 :host.eui-button.eui-button--basic ::ng-deep .eui-icon-svg svg{fill:var(--_basic-color);color:var(--_basic-color)}.eui-21 :host.eui-button.eui-button--outline{background-color:var(--_outline-bg-color);color:var(--_outline-color);border:var(--eui-bw-xs) solid var(--_outline-border-color)}.eui-21 :host.eui-button.eui-button--outline ::ng-deep .eui-icon-svg svg{fill:var(--_outline-color);color:var(--_outline-color)}.eui-21 :host.eui-button.eui-button--basic:hover,.eui-21 :host.eui-button.eui-button--basic:focus{background-color:var(--_basic-hover-color);color:var(--_on-basic-hover-color)}.eui-21 :host.eui-button.eui-button--basic:hover ::ng-deep .eui-icon-svg svg,.eui-21 :host.eui-button.eui-button--basic:focus ::ng-deep .eui-icon-svg svg{fill:var(--_on-basic-hover-color);color:var(--_on-basic-hover-color)}.eui-21 :host.eui-button.eui-button--outline:hover,.eui-21 :host.eui-button.eui-button--outline:focus{background-color:var(--_outline-hover-color);color:var(--_on-outline-hover-color)}.eui-21 :host.eui-button.eui-button--outline:hover ::ng-deep .eui-icon-svg svg,.eui-21 :host.eui-button.eui-button--outline:focus ::ng-deep .eui-icon-svg svg{fill:var(--_on-outline-hover-color);color:var(--_on-outline-hover-color)}.eui-21 :host.eui-button--icon-only{padding:calc(var(--eui-s-xs) - 1px)}.eui-21 :host.eui-button--size-xs{font:var(--_font-s);min-height:calc(var(--eui-s-xl) + var(--eui-s-xs));min-width:calc(var(--eui-s-xl) + var(--eui-s-xs));padding:var(--eui-s-4xs) var(--eui-s-xs)}.eui-21 :host.eui-button--size-xs ::ng-deep .eui-icon-svg svg{height:var(--eui-is-xs);width:var(--eui-is-xs)}.eui-21 :host.eui-button--size-s{font:var(--_font-s);min-height:calc(var(--eui-s-3xl) + var(--eui-s-3xs));min-width:calc(var(--eui-s-3xl) + var(--eui-s-3xs));padding:var(--eui-s-2xs) var(--eui-s-xs)}.eui-21 :host.eui-button--size-s ::ng-deep .eui-icon-svg svg{height:var(--eui-is-s);width:var(--eui-is-s)}.eui-21 :host.eui-button.eui-button--size-s.eui-button--icon-only{padding:calc(var(--eui-s-xs) - 2px) calc(var(--eui-s-xs) - 2px)}.eui-21 :host.eui-button--size-m{font:var(--_font-m)}.eui-21 :host.eui-button--size-l{font:var(--_font-l);min-height:calc(var(--eui-s-5xl) + var(--eui-s-3xs));min-width:calc(var(--eui-s-5xl) + var(--eui-s-3xs));padding:0 var(--eui-s-xs)}.eui-21 :host.eui-button--size-l ::ng-deep .eui-icon-svg svg{height:var(--eui-is-m);width:var(--eui-is-m)}.eui-21 :host.eui-button--rounded{border-radius:var(--eui-br-max)}.eui-21 :host.eui-button--rounded:focus-visible:not([readonly]){outline:var(--eui-bw-s) solid var(--eui-c-primary-border)!important;outline-offset:1px!important;border-radius:var(--eui-br-max)!important}.eui-21 :host.eui-button.eui-button--basic:focus-visible:not([readonly]){outline:var(--eui-bw-s) solid var(--eui-c-primary-border)!important;outline-offset:-2px!important;border-radius:var(--eui-br-xs)!important}.eui-21 :host.eui-button.eui-button--basic.eui-button--rounded:focus-visible:not([readonly]){outline:var(--eui-bw-s) solid var(--eui-c-primary-border)!important;outline-offset:-2px!important;border-radius:var(--eui-br-max)!important}.eui-21 :host.eui-button.eui-button--basic.eui-button--rounded.eui-button--avatar:focus-visible:not([readonly]){outline:var(--eui-bw-s) solid var(--eui-c-primary-border)!important;outline-offset:1px!important;border-radius:var(--eui-br-max)!important}.eui-21 :host.eui-button--responsive{display:grid!important;position:relative;width:100%}.eui-21 :host.eui-button--responsive .eui-button__container{overflow:hidden}.eui-21 :host.eui-button--responsive .eui-button__container>label,.eui-21 :host.eui-button--responsive .eui-button__container>.eui-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-21 :host.eui-button--block{width:100%}.eui-21 :host.eui-button--line-wrap{padding:var(--eui-s-s);white-space:normal}.eui-21 :host.eui-button--expand-toggle{background:var(--eui-c-surface-page);border-color:transparent;border-radius:0 0 var(--eui-s-xs) var(--eui-s-xs);min-height:var(--eui-s-m);padding:0 var(--eui-s-xl);box-shadow:var(--eui-sh-1)}.eui-21 :host.eui-button--start .eui-button__container{justify-content:start}.eui-21 :host.eui-button--end .eui-button__container{justify-content:end}.eui-21 :host.eui-button.disabled,.eui-21 :host.eui-button:disabled{pointer-events:none;background-image:none;box-shadow:none;cursor:not-allowed!important;opacity:var(--eui-o-50)}.eui-21 :host.eui-button--compact{font-size:var(--eui-f-s-s);min-height:calc(var(--eui-s-xl) + var(--eui-s-4xs));min-width:calc(var(--eui-s-xl) + var(--eui-s-4xs));padding:0 var(--eui-s-4xs)}.eui-21 :host.eui-button--no-focus-ring:focus:not([readonly]){outline:0!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: EuiButtonComponent, decorators: [{
            type: Component,
            args: [{ selector: 'button[euiButton], a[euiButton]', changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [
                        {
                            directive: BaseStatesDirective,
                            inputs: [
                                'euiPrimary',
                                'euiBranding',
                                'euiSecondary',
                                'euiSuccess',
                                'euiInfo',
                                'euiWarning',
                                'euiDanger',
                                'euiInverse',
                                'euiVariant',
                                'euiSizeXS',
                                'euiSizeS',
                                'euiSizeM',
                                'euiSizeL',
                                'euiSizeVariant',
                                'euiOutline',
                                'euiRounded',
                                'euiResponsive',
                                'euiStart',
                                'euiEnd',
                            ],
                        },
                    ], template: "<span class=\"eui-button__container\">\n    <ng-content></ng-content>\n</span>\n", styles: [".eui-21 :host.eui-button{--_color: var(--eui-c-secondary);--_basic-color: var(--eui-c-secondary);--_bg-color: var(--eui-c-secondary-surface-light);--_on-bg-color: var(--eui-c-secondary-on-surface-light);--_border-color: var(--eui-c-secondary-border);--_outline-border-color: var(--eui-c-secondary-border);--_hover-color: var(--eui-c-secondary-surface-light-hover);--_on-hover-color: var(--eui-c-secondary);--_basic-bg-color: transparent;--_basic-hover-color: var(--eui-c-secondary-surface-light-hover);--_on-basic-hover-color: var(--eui-c-secondary);--_outline-color: var(--eui-c-secondary);--_outline-bg-color: var(--eui-c-white);--_outline-hover-color: var(--eui-c-secondary-surface-light-hover);--_on-outline-hover-color: var(--eui-c-secondary);--_font-s: var(--eui-f-s-medium);--_font-m: var(--eui-f-m-medium);--_font-l: var(--eui-f-m-medium)}.eui-21 :host.eui-button--branding{--_color: var(--eui-c-branding);--_bg-color: var(--eui-c-branding-surface-light);--_on-bg-color: var(--eui-c-branding-on-surface-light);--_border-color: var(--eui-c-branding);--_outline-border-color: var(--eui-c-white);--_hover-color: var(--eui-c-white);--_on-hover-color: var(--eui-c-branding);--_basic-color: var(--eui-c-white);--_basic-bg-color: var(--eui-c-branding);--_basic-hover-color: var(--eui-c-branding-surface-light);--_on-basic-hover-color: var(--eui-c-branding-on-surface-light);--_outline-color: var(--eui-c-white);--_outline-bg-color: var(--eui-c-branding);--_outline-hover-color: var(--eui-c-branding-surface-light);--_on-outline-hover-color: var(--eui-c-branding-on-surface-light)}.eui-21 :host.eui-button--primary{--_color: var(--eui-c-primary);--_basic-color: var(--eui-c-primary);--_bg-color: var(--eui-c-primary-surface);--_on-bg-color: var(--eui-c-primary-on-surface);--_border-color: var(--eui-c-primary);--_outline-border-color: var(--eui-c-primary);--_hover-color: var(--eui-c-primary-surface-hover);--_on-hover-color: var(--eui-c-primary-on-surface-hover);--_basic-bg-color: transparent;--_basic-hover-color: var(--eui-c-primary-surface-light);--_on-basic-hover-color: var(--eui-c-primary);--_outline-color: var(--eui-c-primary);--_outline-bg-color: var(--eui-c-white);--_outline-hover-color: var(--eui-c-primary-surface-light);--_on-outline-hover-color: var(--eui-c-primary)}.eui-21 :host.eui-button--cta{--_color: var(--eui-c-cta);--_basic-color: var(--eui-c-cta);--_bg-color: var(--eui-c-cta-surface);--_on-bg-color: var(--eui-c-cta-on-surface);--_border-color: transparent;--_outline-border-color: var(--eui-c-cta);--_hover-color: var(--eui-c-cta-surface-hover);--_on-hover-color: var(--eui-c-cta-on-surface-hover);--_basic-bg-color: transparent;--_basic-hover-color: var(--eui-c-cta-surface-light);--_on-basic-hover-color: var(--eui-c-cta);--_outline-color: var(--eui-c-cta);--_outline-bg-color: var(--eui-c-white);--_outline-hover-color: var(--eui-c-cta-surface-light);--_on-outline-hover-color: var(--eui-c-cta)}.eui-21 :host.eui-button--info{--_color: var(--eui-c-info);--_basic-color: var(--eui-c-info);--_bg-color: var(--eui-c-info-surface);--_on-bg-color: var(--eui-c-info-on-surface);--_border-color: var(--eui-c-info);--_outline-border-color: var(--eui-c-info);--_hover-color: var(--eui-c-info-surface-hover);--_on-hover-color: var(--eui-c-info-on-surface-hover);--_basic-bg-color: transparent;--_basic-hover-color: var(--eui-c-info-surface-light);--_on-basic-hover-color: var(--eui-c-info);--_outline-color: var(--eui-c-info);--_outline-bg-color: var(--eui-c-white);--_outline-hover-color: var(--eui-c-info-surface-light);--_on-outline-hover-color: var(--eui-c-info)}.eui-21 :host.eui-button--success{--_color: var(--eui-c-success);--_basic-color: var(--eui-c-success);--_bg-color: var(--eui-c-success-surface);--_on-bg-color: var(--eui-c-success-on-surface);--_border-color: var(--eui-c-success);--_outline-border-color: var(--eui-c-success);--_hover-color: var(--eui-c-success-surface-hover);--_on-hover-color: var(--eui-c-success-on-surface-hover);--_basic-bg-color: transparent;--_basic-hover-color: var(--eui-c-success-surface-light);--_on-basic-hover-color: var(--eui-c-success);--_outline-color: var(--eui-c-success);--_outline-bg-color: var(--eui-c-white);--_outline-hover-color: var(--eui-c-success-surface-light);--_on-outline-hover-color: var(--eui-c-success)}.eui-21 :host.eui-button--warning{--_color: var(--eui-c-warning);--_basic-color: var(--eui-c-warning);--_bg-color: var(--eui-c-warning-surface);--_on-bg-color: var(--eui-c-warning-on-surface);--_border-color: var(--eui-c-warning);--_outline-border-color: var(--eui-c-warning);--_hover-color: var(--eui-c-warning-surface-hover);--_on-hover-color: var(--eui-c-warning-on-surface-hover);--_basic-bg-color: transparent;--_basic-hover-color: var(--eui-c-warning-surface-light);--_on-basic-hover-color: var(--eui-c-warning);--_outline-color: var(--eui-c-warning);--_outline-bg-color: var(--eui-c-white);--_outline-hover-color: var(--eui-c-warning-surface-light);--_on-outline-hover-color: var(--eui-c-warning)}.eui-21 :host.eui-button--danger{--_color: var(--eui-c-danger);--_basic-color: var(--eui-c-danger);--_bg-color: var(--eui-c-danger-surface);--_on-bg-color: var(--eui-c-danger-on-surface);--_border-color: var(--eui-c-danger);--_outline-border-color: var(--eui-c-danger);--_hover-color: var(--eui-c-danger-surface-hover);--_on-hover-color: var(--eui-c-danger-on-surface-hover);--_basic-bg-color: transparent;--_basic-hover-color: var(--eui-c-danger-surface-light);--_on-basic-hover-color: var(--eui-c-danger);--_outline-color: var(--eui-c-danger);--_outline-bg-color: var(--eui-c-white);--_outline-hover-color: var(--eui-c-danger-surface-light);--_on-outline-hover-color: var(--eui-c-danger)}.eui-21 :host.eui-button{align-items:center;background-image:none;border:var(--eui-bw-none);border-radius:var(--eui-br-s);box-sizing:border-box;cursor:pointer;display:inline-flex;flex-shrink:0;justify-content:center;outline:none;text-transform:none;transition:none;vertical-align:middle;white-space:nowrap;font:var(--_font-m);padding:calc(var(--eui-s-xs) - 1px) calc(var(--eui-s-m) - 1px)}.eui-21 :host.eui-button:focus-visible:not([readonly]){outline:var(--eui-bw-s) solid var(--eui-c-primary-border)!important;outline-offset:1px!important;border-radius:var(--eui-br-xs)!important}.eui-21 :host.eui-button .eui-button__container{align-items:center;display:inline-flex;position:relative;gap:var(--eui-s-xs);justify-content:center;width:100%}.eui-21 :host.eui-button{background-color:var(--_bg-color);color:var(--_on-bg-color);border:var(--eui-bw-xs) solid var(--_border-color)}.eui-21 :host.eui-button ::ng-deep .eui-icon-svg svg{fill:var(--_on-bg-color);color:var(--_on-bg-color)}.eui-21 :host.eui-button:hover,.eui-21 :host.eui-button:focus{background-color:var(--_hover-color);color:var(--_on-hover-color)}.eui-21 :host.eui-button:hover ::ng-deep .eui-icon-svg svg,.eui-21 :host.eui-button:focus ::ng-deep .eui-icon-svg svg{fill:var(--_on-bg-color);color:var(--_on-bg-color)}.eui-21 :host.eui-button.eui-button--basic{border:var(--eui-bw-none);box-shadow:none;background-color:var(--_basic-bg-color);color:var(--_basic-color)}.eui-21 :host.eui-button.eui-button--basic ::ng-deep .eui-icon-svg svg{fill:var(--_basic-color);color:var(--_basic-color)}.eui-21 :host.eui-button.eui-button--outline{background-color:var(--_outline-bg-color);color:var(--_outline-color);border:var(--eui-bw-xs) solid var(--_outline-border-color)}.eui-21 :host.eui-button.eui-button--outline ::ng-deep .eui-icon-svg svg{fill:var(--_outline-color);color:var(--_outline-color)}.eui-21 :host.eui-button.eui-button--basic:hover,.eui-21 :host.eui-button.eui-button--basic:focus{background-color:var(--_basic-hover-color);color:var(--_on-basic-hover-color)}.eui-21 :host.eui-button.eui-button--basic:hover ::ng-deep .eui-icon-svg svg,.eui-21 :host.eui-button.eui-button--basic:focus ::ng-deep .eui-icon-svg svg{fill:var(--_on-basic-hover-color);color:var(--_on-basic-hover-color)}.eui-21 :host.eui-button.eui-button--outline:hover,.eui-21 :host.eui-button.eui-button--outline:focus{background-color:var(--_outline-hover-color);color:var(--_on-outline-hover-color)}.eui-21 :host.eui-button.eui-button--outline:hover ::ng-deep .eui-icon-svg svg,.eui-21 :host.eui-button.eui-button--outline:focus ::ng-deep .eui-icon-svg svg{fill:var(--_on-outline-hover-color);color:var(--_on-outline-hover-color)}.eui-21 :host.eui-button--icon-only{padding:calc(var(--eui-s-xs) - 1px)}.eui-21 :host.eui-button--size-xs{font:var(--_font-s);min-height:calc(var(--eui-s-xl) + var(--eui-s-xs));min-width:calc(var(--eui-s-xl) + var(--eui-s-xs));padding:var(--eui-s-4xs) var(--eui-s-xs)}.eui-21 :host.eui-button--size-xs ::ng-deep .eui-icon-svg svg{height:var(--eui-is-xs);width:var(--eui-is-xs)}.eui-21 :host.eui-button--size-s{font:var(--_font-s);min-height:calc(var(--eui-s-3xl) + var(--eui-s-3xs));min-width:calc(var(--eui-s-3xl) + var(--eui-s-3xs));padding:var(--eui-s-2xs) var(--eui-s-xs)}.eui-21 :host.eui-button--size-s ::ng-deep .eui-icon-svg svg{height:var(--eui-is-s);width:var(--eui-is-s)}.eui-21 :host.eui-button.eui-button--size-s.eui-button--icon-only{padding:calc(var(--eui-s-xs) - 2px) calc(var(--eui-s-xs) - 2px)}.eui-21 :host.eui-button--size-m{font:var(--_font-m)}.eui-21 :host.eui-button--size-l{font:var(--_font-l);min-height:calc(var(--eui-s-5xl) + var(--eui-s-3xs));min-width:calc(var(--eui-s-5xl) + var(--eui-s-3xs));padding:0 var(--eui-s-xs)}.eui-21 :host.eui-button--size-l ::ng-deep .eui-icon-svg svg{height:var(--eui-is-m);width:var(--eui-is-m)}.eui-21 :host.eui-button--rounded{border-radius:var(--eui-br-max)}.eui-21 :host.eui-button--rounded:focus-visible:not([readonly]){outline:var(--eui-bw-s) solid var(--eui-c-primary-border)!important;outline-offset:1px!important;border-radius:var(--eui-br-max)!important}.eui-21 :host.eui-button.eui-button--basic:focus-visible:not([readonly]){outline:var(--eui-bw-s) solid var(--eui-c-primary-border)!important;outline-offset:-2px!important;border-radius:var(--eui-br-xs)!important}.eui-21 :host.eui-button.eui-button--basic.eui-button--rounded:focus-visible:not([readonly]){outline:var(--eui-bw-s) solid var(--eui-c-primary-border)!important;outline-offset:-2px!important;border-radius:var(--eui-br-max)!important}.eui-21 :host.eui-button.eui-button--basic.eui-button--rounded.eui-button--avatar:focus-visible:not([readonly]){outline:var(--eui-bw-s) solid var(--eui-c-primary-border)!important;outline-offset:1px!important;border-radius:var(--eui-br-max)!important}.eui-21 :host.eui-button--responsive{display:grid!important;position:relative;width:100%}.eui-21 :host.eui-button--responsive .eui-button__container{overflow:hidden}.eui-21 :host.eui-button--responsive .eui-button__container>label,.eui-21 :host.eui-button--responsive .eui-button__container>.eui-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-21 :host.eui-button--block{width:100%}.eui-21 :host.eui-button--line-wrap{padding:var(--eui-s-s);white-space:normal}.eui-21 :host.eui-button--expand-toggle{background:var(--eui-c-surface-page);border-color:transparent;border-radius:0 0 var(--eui-s-xs) var(--eui-s-xs);min-height:var(--eui-s-m);padding:0 var(--eui-s-xl);box-shadow:var(--eui-sh-1)}.eui-21 :host.eui-button--start .eui-button__container{justify-content:start}.eui-21 :host.eui-button--end .eui-button__container{justify-content:end}.eui-21 :host.eui-button.disabled,.eui-21 :host.eui-button:disabled{pointer-events:none;background-image:none;box-shadow:none;cursor:not-allowed!important;opacity:var(--eui-o-50)}.eui-21 :host.eui-button--compact{font-size:var(--eui-f-s-s);min-height:calc(var(--eui-s-xl) + var(--eui-s-4xs));min-width:calc(var(--eui-s-xl) + var(--eui-s-4xs));padding:0 var(--eui-s-4xs)}.eui-21 :host.eui-button--no-focus-ring:focus:not([readonly]){outline:0!important}\n"] }]
        }], propDecorators: { cssClasses: [{
                type: HostBinding,
                args: ['class']
            }], e2eAttr: [{
                type: HostBinding,
                args: ['attr.data-e2e']
            }, {
                type: Input
            }], id: [{
                type: HostBinding,
                args: ['attr.id']
            }, {
                type: Input
            }], euiBasicButton: [{
                type: Input,
                args: [{ transform: booleanAttribute }]
            }], euiCTAButton: [{
                type: Input,
                args: [{ transform: booleanAttribute }]
            }], euiBlockButton: [{
                type: Input,
                args: [{ transform: booleanAttribute }]
            }], euiIconButton: [{
                type: Input,
                args: [{ transform: booleanAttribute }]
            }], euiAvatarButton: [{
                type: Input,
                args: [{ transform: booleanAttribute }]
            }], euiLineWrap: [{
                type: Input,
                args: [{ transform: booleanAttribute }]
            }], isCompact: [{
                type: Input,
                args: [{ transform: booleanAttribute }]
            }], hasNoFocusRing: [{
                type: Input,
                args: [{ transform: booleanAttribute }]
            }], isChecked: [{
                type: Input
            }], euiDisabled: [{
                type: Input
            }], buttonClick: [{
                type: Output
            }], onClick: [{
                type: HostListener,
                args: ['click']
            }] } });

const EUI_BUTTON = [
    EuiButtonComponent,
];
// export { EuiButtonComponent as EuiButton } from './eui-button.component';

/**
 * Generated bundle index. Do not edit.
 */

export { EUI_BUTTON, EuiButtonComponent };
//# sourceMappingURL=eui-components-eui-button.mjs.map
