import * as i0 from '@angular/core';
import { inject, booleanAttribute, Input, HostBinding, ChangeDetectionStrategy, Component } from '@angular/core';
import * as i1 from '@eui/components/shared';
import { BaseStatesDirective } from '@eui/components/shared';

/**
 * @description
 * A badge component that can display text, numbers, or icons with various states and styles.
 * Supports content truncation, empty states, and icon-only modes.
 *
 */
class EuiStatusBadgeComponent {
    constructor() {
        /** @description Data attribute for e2e testing */
        this.e2eAttr = 'eui-status-badge';
        /** @description ARIA role for accessibility */
        this.role = 'status';
        /** @description ARIA label for accessibility */
        this.ariaLabel = 'status-badge';
        /**
         * @description Whether to display the badge as a dot
         * @default false
         */
        this.euiDottedBadge = false;
        /** @description Instance of BaseStatesDirective for managing component states */
        this.baseStatesDirective = inject(BaseStatesDirective);
    }
    /**
     * @description
     * Computes and returns the CSS classes for the badge based on its current state
     *
     * @returns {string} Space-separated string of CSS class names
     */
    get cssClasses() {
        return [
            this.baseStatesDirective.getCssClasses('eui-status-badge'),
        ].join(' ').trim();
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: EuiStatusBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.17", type: EuiStatusBadgeComponent, isStandalone: true, selector: "div[euiStatusBadge], span[euiStatusBadge], eui-status-badge", inputs: { e2eAttr: "e2eAttr", ariaLabel: ["aria-label", "ariaLabel"], euiDottedBadge: ["euiDottedBadge", "euiDottedBadge", booleanAttribute] }, host: { properties: { "class": "this.cssClasses", "attr.data-e2e": "this.e2eAttr", "attr.role": "this.role", "attr.aria-label": "this.ariaLabel" } }, hostDirectives: [{ directive: i1.BaseStatesDirective, inputs: ["euiPrimary", "euiPrimary", "euiSecondary", "euiSecondary", "euiSuccess", "euiSuccess", "euiInfo", "euiInfo", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiAccent", "euiAccent", "euiVariant", "euiVariant", "euiSizeS", "euiSizeS", "euiSizeM", "euiSizeM", "euiSizeVariant", "euiSizeVariant"] }], ngImport: i0, template: '<ng-content />', isInline: true, styles: [".eui-19 :host.eui-status-badge{--_padding: var(--eui-s-2xs) var(--eui-s-s);--_border-radius: var(--eui-br-m);--_content-font: var(--eui-f-body-s-regular);--_border-width: var(--eui-bw-xs);--_bg-color: var(--eui-c-s-info-surface-medium);--_color-on-bg: var(--eui-c-s-info-on-surface-medium)}.eui-19 :host.eui-status-badge--primary{--_bg-color: var(--eui-c-s-primary-surface-medium);--_color-on-bg: var(--eui-c-s-primary-on-surface-medium);--_border-color: transparent}.eui-19 :host.eui-status-badge--secondary{--_bg-color: var(--eui-c-s-secondary-surface-light);--_color-on-bg: var(--eui-c-s-secondary-on-surface-light);--_border-color: var(--eui-c-divider)}.eui-19 :host.eui-status-badge--info{--_bg-color: var(--eui-c-s-info-surface-medium);--_color-on-bg: var(--eui-c-s-info-on-surface-medium);--_border-color: transparent}.eui-19 :host.eui-status-badge--success{--_bg-color: var(--eui-c-s-success-surface-medium);--_color-on-bg: var(--eui-c-s-success-on-surface-medium);--_border-color: transparent}.eui-19 :host.eui-status-badge--warning{--_bg-color: var(--eui-c-s-warning-surface-medium);--_color-on-bg: var(--eui-c-s-warning-on-surface-medium);--_border-color: transparent}.eui-19 :host.eui-status-badge--danger{--_bg-color: var(--eui-c-s-danger-surface-medium);--_color-on-bg: var(--eui-c-s-danger-on-surface-medium);--_border-color: transparent}.eui-19 :host.eui-status-badge--accent{--_bg-color: var(--eui-c-s-accent-surface-medium);--_color-on-bg: var(--eui-c-s-accent-on-surface-medium);--_border-color: transparent}.eui-19 :host.eui-status-badge--size-s{--_padding: var(--eui-s-3xs) var(--eui-s-xs)}.eui-19 :host.eui-status-badge--size-m{--_padding: var(--eui-s-2xs) var(--eui-s-xs)}.eui-19 :host.eui-status-badge{display:inline-flex;gap:var(--eui-s-xs);border:var(--_border-width) solid var(--_border-color);border-radius:var(--_border-radius);background-color:var(--_bg-color);color:var(--_color-on-bg);padding:var(--_padding);font:var(--_content-font)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: EuiStatusBadgeComponent, decorators: [{
            type: Component,
            args: [{ selector: 'div[euiStatusBadge], span[euiStatusBadge], eui-status-badge', template: '<ng-content />', changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [
                        {
                            directive: BaseStatesDirective,
                            inputs: [
                                'euiPrimary',
                                'euiSecondary',
                                'euiSuccess',
                                'euiInfo',
                                'euiWarning',
                                'euiDanger',
                                'euiAccent',
                                'euiVariant',
                                'euiSizeS',
                                'euiSizeM',
                                'euiSizeVariant',
                            ],
                        },
                    ], styles: [".eui-19 :host.eui-status-badge{--_padding: var(--eui-s-2xs) var(--eui-s-s);--_border-radius: var(--eui-br-m);--_content-font: var(--eui-f-body-s-regular);--_border-width: var(--eui-bw-xs);--_bg-color: var(--eui-c-s-info-surface-medium);--_color-on-bg: var(--eui-c-s-info-on-surface-medium)}.eui-19 :host.eui-status-badge--primary{--_bg-color: var(--eui-c-s-primary-surface-medium);--_color-on-bg: var(--eui-c-s-primary-on-surface-medium);--_border-color: transparent}.eui-19 :host.eui-status-badge--secondary{--_bg-color: var(--eui-c-s-secondary-surface-light);--_color-on-bg: var(--eui-c-s-secondary-on-surface-light);--_border-color: var(--eui-c-divider)}.eui-19 :host.eui-status-badge--info{--_bg-color: var(--eui-c-s-info-surface-medium);--_color-on-bg: var(--eui-c-s-info-on-surface-medium);--_border-color: transparent}.eui-19 :host.eui-status-badge--success{--_bg-color: var(--eui-c-s-success-surface-medium);--_color-on-bg: var(--eui-c-s-success-on-surface-medium);--_border-color: transparent}.eui-19 :host.eui-status-badge--warning{--_bg-color: var(--eui-c-s-warning-surface-medium);--_color-on-bg: var(--eui-c-s-warning-on-surface-medium);--_border-color: transparent}.eui-19 :host.eui-status-badge--danger{--_bg-color: var(--eui-c-s-danger-surface-medium);--_color-on-bg: var(--eui-c-s-danger-on-surface-medium);--_border-color: transparent}.eui-19 :host.eui-status-badge--accent{--_bg-color: var(--eui-c-s-accent-surface-medium);--_color-on-bg: var(--eui-c-s-accent-on-surface-medium);--_border-color: transparent}.eui-19 :host.eui-status-badge--size-s{--_padding: var(--eui-s-3xs) var(--eui-s-xs)}.eui-19 :host.eui-status-badge--size-m{--_padding: var(--eui-s-2xs) var(--eui-s-xs)}.eui-19 :host.eui-status-badge{display:inline-flex;gap:var(--eui-s-xs);border:var(--_border-width) solid var(--_border-color);border-radius:var(--_border-radius);background-color:var(--_bg-color);color:var(--_color-on-bg);padding:var(--_padding);font:var(--_content-font)}\n"] }]
        }], propDecorators: { cssClasses: [{
                type: HostBinding,
                args: ['class']
            }], e2eAttr: [{
                type: HostBinding,
                args: ['attr.data-e2e']
            }, {
                type: Input
            }], role: [{
                type: HostBinding,
                args: ['attr.role']
            }], ariaLabel: [{
                type: HostBinding,
                args: ['attr.aria-label']
            }, {
                type: Input,
                args: ['aria-label']
            }], euiDottedBadge: [{
                type: Input,
                args: [{ transform: booleanAttribute }]
            }] } });

const EUI_STATUS_BADGE = [
    EuiStatusBadgeComponent,
];
// export { EuiStatusBadgeComponent as EuiStatusBadge } from './eui-status-badge.component';

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

export { EUI_STATUS_BADGE, EuiStatusBadgeComponent };
//# sourceMappingURL=eui-components-eui-status-badge.mjs.map
