{"version":3,"file":"ngx-com-components-alert.mjs","sources":["../../../projects/com/components/alert/alert.variants.ts","../../../projects/com/components/alert/alert.utils.ts","../../../projects/com/components/alert/alert-icon.directive.ts","../../../projects/com/components/alert/alert.component.ts","../../../projects/com/components/alert/alert-title.directive.ts","../../../projects/com/components/alert/alert-description.directive.ts","../../../projects/com/components/alert/alert-actions.directive.ts","../../../projects/com/components/alert/index.ts","../../../projects/com/components/alert/ngx-com-components-alert.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\n\nexport type AlertVariant = 'info' | 'success' | 'warning' | 'destructive';\n\n/**\n * CVA variants for the alert container.\n *\n * @tokens `--color-primary-subtle`, `--color-primary-subtle-foreground`, `--color-primary-border-subtle`,\n *         `--color-success-subtle`, `--color-success-subtle-foreground`, `--color-success-border-subtle`,\n *         `--color-warn-subtle`, `--color-warn-subtle-foreground`, `--color-warn-border-subtle`,\n *         `--color-warn`, `--color-warn-foreground`,\n *         `--radius-card`\n */\nexport const alertVariants: (props?: {\n  variant?: AlertVariant;\n}) => string = cva(\n  [\n    'relative',\n    'flex',\n    'w-full',\n    'items-start',\n    'gap-3',\n    'rounded-card',\n    'border',\n    'p-4',\n    'text-sm',\n  ],\n  {\n    variants: {\n      variant: {\n        info: 'bg-primary-subtle text-primary-subtle-foreground border-primary-border-subtle',\n        success: 'bg-success-subtle text-success-subtle-foreground border-success-border-subtle',\n        warning: 'bg-warn-subtle text-warn-subtle-foreground border-warn-border-subtle',\n        destructive: 'bg-warn text-warn-foreground border-warn',\n      },\n    },\n    defaultVariants: {\n      variant: 'info',\n    },\n  },\n);\n\n/**\n * CVA variants for the alert close button.\n *\n * @tokens `--color-ring`, `--radius-card`,\n *         `--color-primary-subtle-foreground-muted`, `--color-primary-subtle-hover`,\n *         `--color-success-subtle-foreground-muted`, `--color-success-subtle-hover`,\n *         `--color-warn-subtle-foreground-muted`, `--color-warn-subtle-hover`,\n *         `--color-warn-foreground-muted`, `--color-warn-foreground-wash`\n */\nexport const alertCloseButtonVariants: (props?: {\n  variant?: AlertVariant;\n}) => string = cva(\n  [\n    'inline-flex',\n    'items-center',\n    'justify-center',\n    'shrink-0',\n    'rounded-card',\n    'p-0.5',\n    'transition-colors',\n    'outline-none',\n    'focus-visible:outline-2',\n    'focus-visible:outline-offset-2',\n    'focus-visible:outline-[--color-ring]',\n  ],\n  {\n    variants: {\n      variant: {\n        info: 'text-primary-subtle-foreground-muted hover:text-primary-subtle-foreground hover:bg-primary-subtle-hover',\n        success: 'text-success-subtle-foreground-muted hover:text-success-subtle-foreground hover:bg-success-subtle-hover',\n        warning: 'text-warn-subtle-foreground-muted hover:text-warn-subtle-foreground hover:bg-warn-subtle-hover',\n        destructive: 'text-warn-foreground-muted hover:text-warn-foreground hover:bg-warn-foreground-wash',\n      },\n    },\n    defaultVariants: {\n      variant: 'info',\n    },\n  },\n);\n\nexport type AlertVariants = VariantProps<typeof alertVariants>;\n","export { mergeClasses } from 'ngx-com/utils';\n\nimport type { AlertVariant } from './alert.variants';\n\n/** Default Lucide icon names per alert variant. */\nexport const DEFAULT_ALERT_ICONS: Record<AlertVariant, string> = {\n  info: 'info',\n  success: 'circle-check',\n  warning: 'triangle-alert',\n  destructive: 'circle-x',\n};\n","import { Directive } from '@angular/core';\n\n/**\n * Custom icon slot for `com-alert`.\n *\n * When present, the alert suppresses the default auto-mapped icon\n * and renders this projected content instead.\n *\n * @tokens none\n *\n * @example\n * ```html\n * <com-alert variant=\"success\">\n *   <com-icon comAlertIcon name=\"party-popper\" size=\"md\" aria-hidden=\"true\" />\n *   <h4 comAlertTitle>Congratulations!</h4>\n * </com-alert>\n * ```\n */\n@Directive({\n  selector: '[comAlertIcon]',\n  host: {\n    class: 'shrink-0 mt-0.5',\n  },\n})\nexport class ComAlertIcon {}\n","import {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  contentChild,\n  input,\n  output,\n  signal,\n  ViewEncapsulation,\n} from '@angular/core';\nimport type {\n  InputSignal,\n  InputSignalWithTransform,\n  OutputEmitterRef,\n  Signal,\n  WritableSignal,\n} from '@angular/core';\nimport { ComIcon } from 'ngx-com/components/icon';\nimport { alertVariants, alertCloseButtonVariants } from './alert.variants';\nimport type { AlertVariant } from './alert.variants';\nimport { mergeClasses, DEFAULT_ALERT_ICONS } from './alert.utils';\nimport { ComAlertIcon } from './alert-icon.directive';\n\n/**\n * Inline alert component for displaying contextual messages.\n *\n * Unlike toasts (ephemeral overlays), alerts are embedded in the page flow\n * and persist until dismissed or the condition changes.\n *\n * @tokens `--color-primary-subtle`, `--color-primary-subtle-foreground`,\n *         `--color-success-subtle`, `--color-success-subtle-foreground`,\n *         `--color-warn-subtle`, `--color-warn-subtle-foreground`,\n *         `--color-warn`, `--color-warn-foreground`,\n *         `--radius-card`, `--color-ring`\n *\n * @example Info alert with title and description\n * ```html\n * <com-alert>\n *   <h4 comAlertTitle>Heads up</h4>\n *   <p comAlertDescription>You can add components using the CLI.</p>\n * </com-alert>\n * ```\n *\n * @example Dismissible warning\n * ```html\n * <com-alert variant=\"warning\" dismissible (dismissed)=\"onDismissed()\">\n *   <h4 comAlertTitle>Storage almost full</h4>\n *   <p comAlertDescription>You have used 90% of your storage quota.</p>\n * </com-alert>\n * ```\n */\n@Component({\n  selector: 'com-alert',\n  exportAs: 'comAlert',\n  template: `\n    @if (visible()) {\n      <div\n        [class]=\"alertClasses()\"\n        [attr.role]=\"ariaRole()\"\n        [attr.aria-live]=\"ariaLive()\"\n        [attr.data-state]=\"animatingOut() ? 'closed' : 'open'\"\n        (animationend)=\"onAnimationEnd()\"\n      >\n        @if (customIcon()) {\n          <ng-content select=\"[comAlertIcon]\" />\n        } @else {\n          <com-icon\n            [name]=\"defaultIconName()\"\n            size=\"md\"\n            class=\"mt-0.5 shrink-0\"\n            aria-hidden=\"true\"\n          />\n        }\n        <div class=\"flex-1 min-w-0\">\n          <ng-content />\n        </div>\n        @if (dismissible()) {\n          <button\n            type=\"button\"\n            [class]=\"closeButtonClasses()\"\n            aria-label=\"Dismiss\"\n            (click)=\"dismiss()\"\n          >\n            <com-icon name=\"x\" size=\"sm\" aria-hidden=\"true\" />\n          </button>\n        }\n      </div>\n    }\n  `,\n  styles: `\n    :host {\n      display: block;\n    }\n\n    [data-state='open'] {\n      --tw-enter-opacity: 0;\n      --tw-enter-translate-y: 0;\n    }\n\n    [data-state='closed'] {\n      --tw-exit-opacity: 0;\n      --tw-exit-translate-y: 0;\n    }\n\n    @media (prefers-reduced-motion: reduce) {\n      [data-state='open'],\n      [data-state='closed'] {\n        animation: none;\n      }\n    }\n  `,\n  imports: [ComIcon],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class ComAlertComponent {\n  /** Semantic color variant. */\n  readonly variant: InputSignal<AlertVariant> = input<AlertVariant>('info');\n\n  /** Shows a dismiss button when true. */\n  readonly dismissible: InputSignalWithTransform<boolean, unknown> = input(false, {\n    transform: booleanAttribute,\n  });\n\n  /** Consumer CSS classes — merged with variant classes. */\n  readonly userClass: InputSignal<string> = input<string>('', { alias: 'class' });\n\n  /** Emitted when the dismiss button is clicked. */\n  readonly dismissed: OutputEmitterRef<void> = output<void>();\n\n  /** @internal Detects whether a custom icon directive is projected. */\n  protected readonly customIcon: Signal<ComAlertIcon | undefined> =\n    contentChild<ComAlertIcon>(ComAlertIcon);\n\n  /** @internal Controls visibility for dismiss animation. */\n  protected readonly visible: WritableSignal<boolean> = signal(true);\n\n  /** @internal Tracks exit animation state. */\n  protected readonly animatingOut: WritableSignal<boolean> = signal(false);\n\n  /** Default icon name auto-mapped from variant. */\n  protected readonly defaultIconName: Signal<string> = computed(\n    () => DEFAULT_ALERT_ICONS[this.variant()],\n  );\n\n  /** ARIA role based on variant. */\n  protected readonly ariaRole: Signal<string> = computed(() => {\n    const v = this.variant();\n    return v === 'warning' || v === 'destructive' ? 'alert' : 'status';\n  });\n\n  /** ARIA live region politeness. */\n  protected readonly ariaLive: Signal<string> = computed(() => {\n    const v = this.variant();\n    return v === 'warning' || v === 'destructive' ? 'assertive' : 'polite';\n  });\n\n  /** Computed alert container classes. */\n  protected readonly alertClasses: Signal<string> = computed(() =>\n    mergeClasses(\n      alertVariants({ variant: this.variant() }),\n      this.animatingOut()\n        ? 'animate-out fade-out-0'\n        : 'animate-in fade-in-0',\n      this.userClass(),\n    ),\n  );\n\n  /** Computed close button classes. */\n  protected readonly closeButtonClasses: Signal<string> = computed(() =>\n    mergeClasses(alertCloseButtonVariants({ variant: this.variant() })),\n  );\n\n  /** @internal Triggers dismiss animation, then removes from DOM. */\n  protected dismiss(): void {\n    this.animatingOut.set(true);\n    this.dismissed.emit();\n  }\n\n  /** @internal Removes element after exit animation completes. */\n  protected onAnimationEnd(): void {\n    if (this.animatingOut()) {\n      this.visible.set(false);\n    }\n  }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Title slot for `com-alert`.\n *\n * Apply to any heading element. Consumer picks the semantic level (h3, h4, etc.).\n *\n * @example\n * ```html\n * <com-alert>\n *   <h4 comAlertTitle>Heads up</h4>\n * </com-alert>\n * ```\n *\n * @tokens `--color-foreground`\n */\n@Directive({\n  selector: '[comAlertTitle]',\n  host: {\n    class: 'text-sm font-semibold leading-tight',\n  },\n})\nexport class ComAlertTitle {}\n","import { Directive } from '@angular/core';\n\n/**\n * Description slot for `com-alert`.\n *\n * Inherits text color from the parent alert variant.\n *\n * @tokens none\n *\n * @example\n * ```html\n * <com-alert>\n *   <p comAlertDescription>Your session will expire in 5 minutes.</p>\n * </com-alert>\n * ```\n */\n@Directive({\n  selector: '[comAlertDescription]',\n  host: {\n    class: 'text-sm',\n  },\n})\nexport class ComAlertDescription {}\n","import { Directive } from '@angular/core';\n\n/**\n * Actions slot for `com-alert`.\n *\n * Container for action buttons. Place buttons inside.\n *\n * @tokens none\n *\n * @example\n * ```html\n * <com-alert variant=\"destructive\">\n *   <h4 comAlertTitle>Account suspended</h4>\n *   <p comAlertDescription>Contact support to restore access.</p>\n *   <div comAlertActions>\n *     <button comButton variant=\"outline\" size=\"sm\">Contact Support</button>\n *   </div>\n * </com-alert>\n * ```\n */\n@Directive({\n  selector: '[comAlertActions]',\n  host: {\n    class: 'mt-3 flex items-center gap-2',\n  },\n})\nexport class ComAlertActions {}\n","// Public API for the alert component\n\n// Main component\nexport { ComAlertComponent } from './alert.component';\n\n// Content projection directives\nexport { ComAlertIcon } from './alert-icon.directive';\nexport { ComAlertTitle } from './alert-title.directive';\nexport { ComAlertDescription } from './alert-description.directive';\nexport { ComAlertActions } from './alert-actions.directive';\n\n// Variants (for advanced customization)\nexport { alertVariants, alertCloseButtonVariants } from './alert.variants';\n\nexport type {\n  AlertVariant,\n  AlertVariants,\n} from './alert.variants';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}