import { jsxs, jsx } from 'react/jsx-runtime';
import { forwardRef } from 'react';
import { S as SvgClose } from './close-DZj38AEh.js';
import { S as SvgInfo } from './info-CYpG6tcI.js';
import { S as SvgWarning } from './warning-c4Wj1rI4.js';
import { S as SvgError } from './error-DR_wWdYY.js';
import { S as SvgCheckCircle } from './check_circle-CM0ukqXv.js';
import { B as Button } from './Button-BdrrhBTI.js';
import { I as Icon } from './Icon-DuIlne4x.js';
import { c as cx } from './index-De1g9FRV.js';
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DMDdfIah.js';
import { useTrackingId } from './useTrackingId.js';

import './Announcement.css';const announcement = "_announcement_178jo_2";
const title = "_title_178jo_48";
const success = "_success_178jo_68";
const warning = "_warning_178jo_76";
const danger = "_danger_178jo_84";
const styles = {
	announcement: announcement,
	"close-container": "_close-container_178jo_39",
	"title-container": "_title-container_178jo_48",
	title: title,
	"status-icon": "_status-icon_178jo_65",
	success: success,
	warning: warning,
	danger: danger,
	"close-button": "_close-button_178jo_94"
};

const statusIconMap = {
  info: SvgInfo,
  success: SvgCheckCircle,
  warning: SvgWarning,
  danger: SvgError
};
const Announcement = forwardRef(
  (props, ref) => {
    const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
    const {
      className,
      title,
      status = "info",
      children,
      style,
      onClose,
      ...rest
    } = componentProps;
    const data = {
      title,
      status
    };
    const trackingId = useTrackingId({
      name: "Announcement",
      data,
      hasOverride: !!props["data-tracking-id"]
    });
    const AnnouncementCx = cx(styles["announcement"], className, {
      [styles["success"]]: status === "success",
      [styles["warning"]]: status === "warning",
      [styles["danger"]]: status === "danger"
    });
    const styleCombined = {
      ...style,
      ...layoutStyles
    };
    return /* @__PURE__ */ jsxs(
      "div",
      {
        "data-tracking-id": trackingId,
        role: "status",
        className: AnnouncementCx,
        "data-anv": "announcement",
        style: styleCombined,
        ...rest,
        ref,
        children: [
          /* @__PURE__ */ jsxs("span", { className: styles["title-container"], children: [
            /* @__PURE__ */ jsx(
              Icon,
              {
                size: "large",
                className: styles["status-icon"],
                svg: statusIconMap[status]
              }
            ),
            /* @__PURE__ */ jsx("span", { className: styles["title"], children: title })
          ] }),
          children,
          onClose ? /* @__PURE__ */ jsx("span", { className: styles["close-container"], children: /* @__PURE__ */ jsx(
            Button,
            {
              icon: SvgClose,
              size: "small",
              appearance: "ghost",
              className: styles["close-button"],
              onClick: (e) => onClose(e),
              "aria-label": `Dismiss ${status} announcement`
            }
          ) }) : null
        ]
      }
    );
  }
);
Announcement.displayName = "Announcement";

export { Announcement as A };
//# sourceMappingURL=Announcement-B9zm-_1S.js.map
