import * as i1 from '@angular/common';
import { CommonModule } from '@angular/common';
import * as i0 from '@angular/core';
import { Directive, input, booleanAttribute, output, signal, viewChild, contentChild, computed, afterNextRender, effect, ChangeDetectionStrategy, Component } from '@angular/core';
import * as i2 from '@angular/material/icon';
import { MatIconModule } from '@angular/material/icon';
import { TranslatePipe } from '@sdcorejs/angular/i18n';

/**
 * Marker cho vùng action custom chiếu vào <sd-inform>.
 * Khi có phần tử mang [sdInformAction], component ẩn link `actionLabel` mặc định.
 */
class SdInformActionDirective {
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SdInformActionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
    static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.17", type: SdInformActionDirective, isStandalone: true, selector: "[sdInformAction]", ngImport: i0 });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SdInformActionDirective, decorators: [{
            type: Directive,
            args: [{
                    selector: '[sdInformAction]',
                    standalone: true,
                }]
        }] });

/* eslint-disable @angular-eslint/no-output-rename */
// why: mỗi color có icon trạng thái mặc định khi consumer không truyền [icon].
const SD_INFORM_DEFAULT_ICON = {
    primary: 'info',
    secondary: 'info',
    info: 'info',
    success: 'check_circle',
    warning: 'warning',
    error: 'error',
};
class SdInform {
    // 1. INPUTS
    color = input('primary', { ...(ngDevMode ? { debugName: "color" } : /* istanbul ignore next */ {}), transform: value => value || 'primary' });
    primary = input(false, { ...(ngDevMode ? { debugName: "primary" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
    secondary = input(false, { ...(ngDevMode ? { debugName: "secondary" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
    info = input(false, { ...(ngDevMode ? { debugName: "info" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
    success = input(false, { ...(ngDevMode ? { debugName: "success" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
    warning = input(false, { ...(ngDevMode ? { debugName: "warning" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
    error = input(false, { ...(ngDevMode ? { debugName: "error" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
    title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : /* istanbul ignore next */ []));
    description = input(...(ngDevMode ? [undefined, { debugName: "description" }] : /* istanbul ignore next */ []));
    icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : /* istanbul ignore next */ []));
    hideIcon = input(false, { ...(ngDevMode ? { debugName: "hideIcon" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
    fontSet = input('material-icons', { ...(ngDevMode ? { debugName: "fontSet" } : /* istanbul ignore next */ {}), transform: value => value || 'material-icons' });
    closable = input(false, { ...(ngDevMode ? { debugName: "closable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
    actionLabel = input(...(ngDevMode ? [undefined, { debugName: "actionLabel" }] : /* istanbul ignore next */ []));
    lineClamp = input(...(ngDevMode ? [undefined, { debugName: "lineClamp" }] : /* istanbul ignore next */ []));
    autoId = input(...(ngDevMode ? [undefined, { debugName: "autoId" }] : /* istanbul ignore next */ []));
    // 2. OUTPUTS
    sdClosed = output();
    sdAction = output();
    // 3. STATE
    dismissed = signal(false, ...(ngDevMode ? [{ debugName: "dismissed" }] : /* istanbul ignore next */ []));
    expanded = signal(false, ...(ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []));
    overflowing = signal(false, ...(ngDevMode ? [{ debugName: "overflowing" }] : /* istanbul ignore next */ []));
    bodyRef = viewChild('body', ...(ngDevMode ? [{ debugName: "bodyRef" }] : /* istanbul ignore next */ []));
    actionSlot = contentChild(SdInformActionDirective, ...(ngDevMode ? [{ debugName: "actionSlot" }] : /* istanbul ignore next */ []));
    // 4. COMPUTED
    effectiveColor = computed(() => {
        if (this.primary())
            return 'primary';
        if (this.secondary())
            return 'secondary';
        if (this.info())
            return 'info';
        if (this.success())
            return 'success';
        if (this.warning())
            return 'warning';
        if (this.error())
            return 'error';
        return this.color();
    }, ...(ngDevMode ? [{ debugName: "effectiveColor" }] : /* istanbul ignore next */ []));
    colorClasses = computed(() => {
        const c = this.effectiveColor();
        return {
            'c-primary': c === 'primary',
            'c-secondary': c === 'secondary',
            'c-info': c === 'info',
            'c-success': c === 'success',
            'c-warning': c === 'warning',
            'c-error': c === 'error',
        };
    }, ...(ngDevMode ? [{ debugName: "colorClasses" }] : /* istanbul ignore next */ []));
    effectiveIcon = computed(() => {
        if (this.hideIcon())
            return null;
        return this.icon() || SD_INFORM_DEFAULT_ICON[this.effectiveColor()];
    }, ...(ngDevMode ? [{ debugName: "effectiveIcon" }] : /* istanbul ignore next */ []));
    fontSetClasses = computed(() => {
        const f = this.fontSet();
        return {
            'material-icons': f === 'material-icons',
            'material-icons-outlined': f === 'material-icons-outlined',
            'material-icons-round': f === 'material-icons-round',
            'material-icons-sharp': f === 'material-icons-sharp',
        };
    }, ...(ngDevMode ? [{ debugName: "fontSetClasses" }] : /* istanbul ignore next */ []));
    hasActionSlot = computed(() => !!this.actionSlot(), ...(ngDevMode ? [{ debugName: "hasActionSlot" }] : /* istanbul ignore next */ []));
    // clamp dòng: null = không clamp (đầy đủ); số = số dòng tối đa.
    clampLines = computed(() => {
        const n = this.lineClamp();
        if (!n || n <= 0)
            return null;
        return this.expanded() ? null : n;
    }, ...(ngDevMode ? [{ debugName: "clampLines" }] : /* istanbul ignore next */ []));
    // toggle hiện khi đang clamp và đã từng tràn, hoặc đang mở rộng (để còn thu gọn lại).
    showToggle = computed(() => {
        if (!this.lineClamp())
            return false;
        return this.overflowing() || this.expanded();
    }, ...(ngDevMode ? [{ debugName: "showToggle" }] : /* istanbul ignore next */ []));
    // why: error/warning là cảnh báo → assertive 'alert'; các màu còn lại là thông tin → polite 'status'.
    liveRole = computed(() => {
        const c = this.effectiveColor();
        return c === 'error' || c === 'warning' ? 'alert' : 'status';
    }, ...(ngDevMode ? [{ debugName: "liveRole" }] : /* istanbul ignore next */ []));
    // 5. OVERFLOW MEASUREMENT
    #measureScheduled = false;
    constructor() {
        // đo lần đầu sau render
        afterNextRender(() => this.measureOverflow());
        // why: re-đo khi nội dung/clamp/expanded đổi; đồng thời gắn ResizeObserver để bắt thay đổi kích thước container (responsive).
        effect(onCleanup => {
            this.description();
            this.lineClamp();
            this.expanded();
            const el = this.bodyRef()?.nativeElement;
            this.#scheduleMeasure();
            // why: guard instanceof Element để test stub (plain object) không làm ResizeObserver.observe ném lỗi.
            if (el instanceof Element && typeof ResizeObserver !== 'undefined') {
                const ro = new ResizeObserver(() => this.measureOverflow());
                ro.observe(el);
                onCleanup(() => ro.disconnect());
            }
        });
    }
    #scheduleMeasure() {
        if (this.#measureScheduled)
            return;
        this.#measureScheduled = true;
        // gom nhiều thay đổi vào 1 lần đo sau khi DOM cập nhật xong
        queueMicrotask(() => {
            this.#measureScheduled = false;
            this.measureOverflow();
        });
    }
    /** Đo tràn dòng của body; chỉ có ý nghĩa khi đang clamp. */
    measureOverflow() {
        const el = this.bodyRef()?.nativeElement;
        if (!el || this.expanded() || !this.lineClamp())
            return;
        // +1 chống sai số làm tròn sub-pixel
        this.overflowing.set(el.scrollHeight > el.clientHeight + 1);
    }
    // 6. HANDLERS
    toggleExpanded() {
        this.expanded.update(v => !v);
    }
    onClose(event) {
        event.stopPropagation();
        this.dismissed.set(true);
        this.sdClosed.emit(event);
    }
    onAction(event) {
        event.stopPropagation();
        this.sdAction.emit(event);
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SdInform, deps: [], target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SdInform, isStandalone: true, selector: "sd-inform", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, primary: { classPropertyName: "primary", publicName: "primary", isSignal: true, isRequired: false, transformFunction: null }, secondary: { classPropertyName: "secondary", publicName: "secondary", isSignal: true, isRequired: false, transformFunction: null }, info: { classPropertyName: "info", publicName: "info", isSignal: true, isRequired: false, transformFunction: null }, success: { classPropertyName: "success", publicName: "success", isSignal: true, isRequired: false, transformFunction: null }, warning: { classPropertyName: "warning", publicName: "warning", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, hideIcon: { classPropertyName: "hideIcon", publicName: "hideIcon", isSignal: true, isRequired: false, transformFunction: null }, fontSet: { classPropertyName: "fontSet", publicName: "fontSet", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, actionLabel: { classPropertyName: "actionLabel", publicName: "actionLabel", isSignal: true, isRequired: false, transformFunction: null }, lineClamp: { classPropertyName: "lineClamp", publicName: "lineClamp", isSignal: true, isRequired: false, transformFunction: null }, autoId: { classPropertyName: "autoId", publicName: "autoId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sdClosed: "sdClosed", sdAction: "sdAction" }, queries: [{ propertyName: "actionSlot", first: true, predicate: SdInformActionDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "bodyRef", first: true, predicate: ["body"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (!dismissed()) {\n  @let ic = effectiveIcon();\n  <div\n    class=\"c-inform\"\n    [attr.role]=\"liveRole()\"\n    [ngClass]=\"colorClasses()\"\n    [attr.data-autoId]=\"autoId() || null\"\n    [attr.data-autoid]=\"autoId() || null\">\n\n    @if (ic) {\n      <mat-icon class=\"c-inform-icon c-material-icon\" aria-hidden=\"true\" [ngClass]=\"fontSetClasses()\">{{ ic }}</mat-icon>\n    }\n\n    @let al = actionLabel();\n    <div class=\"c-inform-content\">\n      @if (title(); as t) {\n        <div class=\"c-inform-title\">{{ t }}</div>\n      }\n      @if (description(); as d) {\n        <div\n          #body\n          class=\"c-inform-body\"\n          [class.is-clamped]=\"clampLines() !== null\"\n          [style.-webkit-line-clamp]=\"clampLines()\">\n          {{ d }}\n        </div>\n      }\n      @if (showToggle()) {\n        <button type=\"button\" class=\"c-inform-toggle\" (click)=\"toggleExpanded()\">\n          {{ (expanded() ? 'core.component.inform.show-less' : 'core.component.inform.show-more') | translate }}\n        </button>\n      }\n\n      @if (hasActionSlot()) {\n        <div class=\"c-inform-action\">\n          <ng-content select=\"[sdInformAction]\"></ng-content>\n        </div>\n      } @else if (al) {\n        <button type=\"button\" class=\"c-inform-action c-inform-action-link\" (click)=\"onAction($event)\">\n          {{ al }}\n        </button>\n      }\n    </div>\n\n    @if (closable()) {\n      <button\n        type=\"button\"\n        class=\"c-inform-close\"\n        [attr.aria-label]=\"'core.common.close' | translate\"\n        (click)=\"onClose($event)\">\n        <mat-icon class=\"material-icons\" aria-hidden=\"true\">close</mat-icon>\n      </button>\n    }\n  </div>\n}\n", styles: [".text-primary{color:var(--sd-primary)!important}.bg-primary{background:var(--sd-primary)!important}.border-primary{border-color:var(--sd-primary)!important}.text-primary-light{color:var(--sd-primary-light)!important}.bg-primary-light{background:var(--sd-primary-light)!important}.border-primary-light{border-color:var(--sd-primary-light)!important}.text-primary-dark{color:var(--sd-primary-dark)!important}.bg-primary-dark{background:var(--sd-primary-dark)!important}.border-primary-dark{border-color:var(--sd-primary-dark)!important}.text-info{color:var(--sd-info)!important}.bg-info{background:var(--sd-info)!important}.border-info{border-color:var(--sd-info)!important}.text-info-light{color:var(--sd-info-light)!important}.bg-info-light{background:var(--sd-info-light)!important}.border-info-light{border-color:var(--sd-info-light)!important}.text-info-dark{color:var(--sd-info-dark)!important}.bg-info-dark{background:var(--sd-info-dark)!important}.border-info-dark{border-color:var(--sd-info-dark)!important}.text-success{color:var(--sd-success)!important}.bg-success{background:var(--sd-success)!important}.border-success{border-color:var(--sd-success)!important}.text-success-light{color:var(--sd-success-light)!important}.bg-success-light{background:var(--sd-success-light)!important}.border-success-light{border-color:var(--sd-success-light)!important}.text-success-dark{color:var(--sd-success-dark)!important}.bg-success-dark{background:var(--sd-success-dark)!important}.border-success-dark{border-color:var(--sd-success-dark)!important}.text-warning{color:var(--sd-warning)!important}.bg-warning{background:var(--sd-warning)!important}.border-warning{border-color:var(--sd-warning)!important}.text-warning-light{color:var(--sd-warning-light)!important}.bg-warning-light{background:var(--sd-warning-light)!important}.border-warning-light{border-color:var(--sd-warning-light)!important}.text-warning-dark{color:var(--sd-warning-dark)!important}.bg-warning-dark{background:var(--sd-warning-dark)!important}.border-warning-dark{border-color:var(--sd-warning-dark)!important}.text-error{color:var(--sd-error)!important}.bg-error{background:var(--sd-error)!important}.border-error{border-color:var(--sd-error)!important}.text-error-light{color:var(--sd-error-light)!important}.bg-error-light{background:var(--sd-error-light)!important}.border-error-light{border-color:var(--sd-error-light)!important}.text-error-dark{color:var(--sd-error-dark)!important}.bg-error-dark{background:var(--sd-error-dark)!important}.border-error-dark{border-color:var(--sd-error-dark)!important}.text-secondary{color:var(--sd-secondary)!important}.bg-secondary{background:var(--sd-secondary)!important}.border-secondary{border-color:var(--sd-secondary)!important}.text-secondary-light{color:var(--sd-secondary-light)!important}.bg-secondary-light{background:var(--sd-secondary-light)!important}.border-secondary-light{border-color:var(--sd-secondary-light)!important}.text-secondary-dark{color:var(--sd-secondary-dark)!important}.bg-secondary-dark{background:var(--sd-secondary-dark)!important}.border-secondary-dark{border-color:var(--sd-secondary-dark)!important}.text-light{color:var(--sd-light)!important}.bg-light{background:var(--sd-light)!important}.border-light{border-color:var(--sd-light)!important}.text-dark{color:var(--sd-dark)!important}.bg-dark{background:var(--sd-dark)!important}.border-dark{border-color:var(--sd-dark)!important}.text-black500{color:var(--sd-black500)!important}.bg-black500{background:var(--sd-black500)!important}.border-black500{border-color:var(--sd-black500)!important}.text-black400{color:var(--sd-black400)!important}.bg-black400{background:var(--sd-black400)!important}.border-black400{border-color:var(--sd-black400)!important}.text-black300{color:var(--sd-black300)!important}.bg-black300{background:var(--sd-black300)!important}.border-black300{border-color:var(--sd-black300)!important}.text-black200{color:var(--sd-black200)!important}.bg-black200{background:var(--sd-black200)!important}.border-black200{border-color:var(--sd-black200)!important}.text-black100{color:var(--sd-black100)!important}.bg-black100{background:var(--sd-black100)!important}.border-black100{border-color:var(--sd-black100)!important}.text-white{color:#fff!important}.bg-white{background:#fff!important}.border-white{border-color:#fff!important}.text-black{color:#000!important}.bg-black{background:#000!important}.border-black{border-color:#000!important}.c-inform{display:flex;align-items:flex-start;gap:12px;border:1px solid transparent;border-radius:8px;padding:12px 16px;background:#fff}.c-inform.c-primary{border-color:var(--sd-primary);background:var(--sd-primary-light)}.c-inform.c-primary .c-inform-icon,.c-inform.c-primary .c-inform-title{color:var(--sd-primary)}.c-inform.c-secondary{border-color:var(--sd-secondary);background:var(--sd-secondary-light)}.c-inform.c-secondary .c-inform-icon,.c-inform.c-secondary .c-inform-title{color:var(--sd-secondary)}.c-inform.c-info{border-color:var(--sd-info);background:var(--sd-info-light)}.c-inform.c-info .c-inform-icon,.c-inform.c-info .c-inform-title{color:var(--sd-info)}.c-inform.c-success{border-color:var(--sd-success);background:var(--sd-success-light)}.c-inform.c-success .c-inform-icon,.c-inform.c-success .c-inform-title{color:var(--sd-success)}.c-inform.c-warning{border-color:var(--sd-warning);background:var(--sd-warning-light)}.c-inform.c-warning .c-inform-icon,.c-inform.c-warning .c-inform-title{color:var(--sd-warning)}.c-inform.c-error{border-color:var(--sd-error);background:var(--sd-error-light)}.c-inform.c-error .c-inform-icon,.c-inform.c-error .c-inform-title{color:var(--sd-error)}.c-inform .c-inform-icon{flex:0 0 auto;width:20px;height:20px;font-size:20px;line-height:20px}.c-inform .c-inform-content{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.c-inform .c-inform-title{font-weight:600;font-size:14px;line-height:20px}.c-inform .c-inform-body{font-size:14px;line-height:20px;color:var(--sd-black500);overflow-wrap:break-word}.c-inform .c-inform-body.is-clamped{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.c-inform .c-inform-toggle,.c-inform .c-inform-action-link{align-self:flex-start;margin-top:4px;padding:0;border:none;background:none;cursor:pointer;font-size:14px;line-height:20px}.c-inform .c-inform-toggle,.c-inform .c-inform-action-link{color:var(--sd-info)}.c-inform .c-inform-action-link:hover{text-decoration:underline}.c-inform .c-inform-close{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;padding:0;border:none;background:transparent;cursor:pointer;color:var(--sd-black400);transition:background-color 80ms ease,color 80ms ease}.c-inform .c-inform-close:hover{background:#0000000f;color:var(--sd-error)}.c-inform .c-inform-close mat-icon{width:18px;height:18px;font-size:18px;line-height:18px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SdInform, decorators: [{
            type: Component,
            args: [{ selector: 'sd-inform', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, MatIconModule, TranslatePipe], template: "@if (!dismissed()) {\n  @let ic = effectiveIcon();\n  <div\n    class=\"c-inform\"\n    [attr.role]=\"liveRole()\"\n    [ngClass]=\"colorClasses()\"\n    [attr.data-autoId]=\"autoId() || null\"\n    [attr.data-autoid]=\"autoId() || null\">\n\n    @if (ic) {\n      <mat-icon class=\"c-inform-icon c-material-icon\" aria-hidden=\"true\" [ngClass]=\"fontSetClasses()\">{{ ic }}</mat-icon>\n    }\n\n    @let al = actionLabel();\n    <div class=\"c-inform-content\">\n      @if (title(); as t) {\n        <div class=\"c-inform-title\">{{ t }}</div>\n      }\n      @if (description(); as d) {\n        <div\n          #body\n          class=\"c-inform-body\"\n          [class.is-clamped]=\"clampLines() !== null\"\n          [style.-webkit-line-clamp]=\"clampLines()\">\n          {{ d }}\n        </div>\n      }\n      @if (showToggle()) {\n        <button type=\"button\" class=\"c-inform-toggle\" (click)=\"toggleExpanded()\">\n          {{ (expanded() ? 'core.component.inform.show-less' : 'core.component.inform.show-more') | translate }}\n        </button>\n      }\n\n      @if (hasActionSlot()) {\n        <div class=\"c-inform-action\">\n          <ng-content select=\"[sdInformAction]\"></ng-content>\n        </div>\n      } @else if (al) {\n        <button type=\"button\" class=\"c-inform-action c-inform-action-link\" (click)=\"onAction($event)\">\n          {{ al }}\n        </button>\n      }\n    </div>\n\n    @if (closable()) {\n      <button\n        type=\"button\"\n        class=\"c-inform-close\"\n        [attr.aria-label]=\"'core.common.close' | translate\"\n        (click)=\"onClose($event)\">\n        <mat-icon class=\"material-icons\" aria-hidden=\"true\">close</mat-icon>\n      </button>\n    }\n  </div>\n}\n", styles: [".text-primary{color:var(--sd-primary)!important}.bg-primary{background:var(--sd-primary)!important}.border-primary{border-color:var(--sd-primary)!important}.text-primary-light{color:var(--sd-primary-light)!important}.bg-primary-light{background:var(--sd-primary-light)!important}.border-primary-light{border-color:var(--sd-primary-light)!important}.text-primary-dark{color:var(--sd-primary-dark)!important}.bg-primary-dark{background:var(--sd-primary-dark)!important}.border-primary-dark{border-color:var(--sd-primary-dark)!important}.text-info{color:var(--sd-info)!important}.bg-info{background:var(--sd-info)!important}.border-info{border-color:var(--sd-info)!important}.text-info-light{color:var(--sd-info-light)!important}.bg-info-light{background:var(--sd-info-light)!important}.border-info-light{border-color:var(--sd-info-light)!important}.text-info-dark{color:var(--sd-info-dark)!important}.bg-info-dark{background:var(--sd-info-dark)!important}.border-info-dark{border-color:var(--sd-info-dark)!important}.text-success{color:var(--sd-success)!important}.bg-success{background:var(--sd-success)!important}.border-success{border-color:var(--sd-success)!important}.text-success-light{color:var(--sd-success-light)!important}.bg-success-light{background:var(--sd-success-light)!important}.border-success-light{border-color:var(--sd-success-light)!important}.text-success-dark{color:var(--sd-success-dark)!important}.bg-success-dark{background:var(--sd-success-dark)!important}.border-success-dark{border-color:var(--sd-success-dark)!important}.text-warning{color:var(--sd-warning)!important}.bg-warning{background:var(--sd-warning)!important}.border-warning{border-color:var(--sd-warning)!important}.text-warning-light{color:var(--sd-warning-light)!important}.bg-warning-light{background:var(--sd-warning-light)!important}.border-warning-light{border-color:var(--sd-warning-light)!important}.text-warning-dark{color:var(--sd-warning-dark)!important}.bg-warning-dark{background:var(--sd-warning-dark)!important}.border-warning-dark{border-color:var(--sd-warning-dark)!important}.text-error{color:var(--sd-error)!important}.bg-error{background:var(--sd-error)!important}.border-error{border-color:var(--sd-error)!important}.text-error-light{color:var(--sd-error-light)!important}.bg-error-light{background:var(--sd-error-light)!important}.border-error-light{border-color:var(--sd-error-light)!important}.text-error-dark{color:var(--sd-error-dark)!important}.bg-error-dark{background:var(--sd-error-dark)!important}.border-error-dark{border-color:var(--sd-error-dark)!important}.text-secondary{color:var(--sd-secondary)!important}.bg-secondary{background:var(--sd-secondary)!important}.border-secondary{border-color:var(--sd-secondary)!important}.text-secondary-light{color:var(--sd-secondary-light)!important}.bg-secondary-light{background:var(--sd-secondary-light)!important}.border-secondary-light{border-color:var(--sd-secondary-light)!important}.text-secondary-dark{color:var(--sd-secondary-dark)!important}.bg-secondary-dark{background:var(--sd-secondary-dark)!important}.border-secondary-dark{border-color:var(--sd-secondary-dark)!important}.text-light{color:var(--sd-light)!important}.bg-light{background:var(--sd-light)!important}.border-light{border-color:var(--sd-light)!important}.text-dark{color:var(--sd-dark)!important}.bg-dark{background:var(--sd-dark)!important}.border-dark{border-color:var(--sd-dark)!important}.text-black500{color:var(--sd-black500)!important}.bg-black500{background:var(--sd-black500)!important}.border-black500{border-color:var(--sd-black500)!important}.text-black400{color:var(--sd-black400)!important}.bg-black400{background:var(--sd-black400)!important}.border-black400{border-color:var(--sd-black400)!important}.text-black300{color:var(--sd-black300)!important}.bg-black300{background:var(--sd-black300)!important}.border-black300{border-color:var(--sd-black300)!important}.text-black200{color:var(--sd-black200)!important}.bg-black200{background:var(--sd-black200)!important}.border-black200{border-color:var(--sd-black200)!important}.text-black100{color:var(--sd-black100)!important}.bg-black100{background:var(--sd-black100)!important}.border-black100{border-color:var(--sd-black100)!important}.text-white{color:#fff!important}.bg-white{background:#fff!important}.border-white{border-color:#fff!important}.text-black{color:#000!important}.bg-black{background:#000!important}.border-black{border-color:#000!important}.c-inform{display:flex;align-items:flex-start;gap:12px;border:1px solid transparent;border-radius:8px;padding:12px 16px;background:#fff}.c-inform.c-primary{border-color:var(--sd-primary);background:var(--sd-primary-light)}.c-inform.c-primary .c-inform-icon,.c-inform.c-primary .c-inform-title{color:var(--sd-primary)}.c-inform.c-secondary{border-color:var(--sd-secondary);background:var(--sd-secondary-light)}.c-inform.c-secondary .c-inform-icon,.c-inform.c-secondary .c-inform-title{color:var(--sd-secondary)}.c-inform.c-info{border-color:var(--sd-info);background:var(--sd-info-light)}.c-inform.c-info .c-inform-icon,.c-inform.c-info .c-inform-title{color:var(--sd-info)}.c-inform.c-success{border-color:var(--sd-success);background:var(--sd-success-light)}.c-inform.c-success .c-inform-icon,.c-inform.c-success .c-inform-title{color:var(--sd-success)}.c-inform.c-warning{border-color:var(--sd-warning);background:var(--sd-warning-light)}.c-inform.c-warning .c-inform-icon,.c-inform.c-warning .c-inform-title{color:var(--sd-warning)}.c-inform.c-error{border-color:var(--sd-error);background:var(--sd-error-light)}.c-inform.c-error .c-inform-icon,.c-inform.c-error .c-inform-title{color:var(--sd-error)}.c-inform .c-inform-icon{flex:0 0 auto;width:20px;height:20px;font-size:20px;line-height:20px}.c-inform .c-inform-content{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.c-inform .c-inform-title{font-weight:600;font-size:14px;line-height:20px}.c-inform .c-inform-body{font-size:14px;line-height:20px;color:var(--sd-black500);overflow-wrap:break-word}.c-inform .c-inform-body.is-clamped{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.c-inform .c-inform-toggle,.c-inform .c-inform-action-link{align-self:flex-start;margin-top:4px;padding:0;border:none;background:none;cursor:pointer;font-size:14px;line-height:20px}.c-inform .c-inform-toggle,.c-inform .c-inform-action-link{color:var(--sd-info)}.c-inform .c-inform-action-link:hover{text-decoration:underline}.c-inform .c-inform-close{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;padding:0;border:none;background:transparent;cursor:pointer;color:var(--sd-black400);transition:background-color 80ms ease,color 80ms ease}.c-inform .c-inform-close:hover{background:#0000000f;color:var(--sd-error)}.c-inform .c-inform-close mat-icon{width:18px;height:18px;font-size:18px;line-height:18px}\n"] }]
        }], ctorParameters: () => [], propDecorators: { color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], primary: [{ type: i0.Input, args: [{ isSignal: true, alias: "primary", required: false }] }], secondary: [{ type: i0.Input, args: [{ isSignal: true, alias: "secondary", required: false }] }], info: [{ type: i0.Input, args: [{ isSignal: true, alias: "info", required: false }] }], success: [{ type: i0.Input, args: [{ isSignal: true, alias: "success", required: false }] }], warning: [{ type: i0.Input, args: [{ isSignal: true, alias: "warning", required: false }] }], error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], hideIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideIcon", required: false }] }], fontSet: [{ type: i0.Input, args: [{ isSignal: true, alias: "fontSet", required: false }] }], closable: [{ type: i0.Input, args: [{ isSignal: true, alias: "closable", required: false }] }], actionLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionLabel", required: false }] }], lineClamp: [{ type: i0.Input, args: [{ isSignal: true, alias: "lineClamp", required: false }] }], autoId: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoId", required: false }] }], sdClosed: [{ type: i0.Output, args: ["sdClosed"] }], sdAction: [{ type: i0.Output, args: ["sdAction"] }], bodyRef: [{ type: i0.ViewChild, args: ['body', { isSignal: true }] }], actionSlot: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SdInformActionDirective), { isSignal: true }] }] } });

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

export { SdInform, SdInformActionDirective };
//# sourceMappingURL=sdcorejs-angular-components-inform.mjs.map
