{"version":3,"file":"Banner.cjs","names":["_react","require","_i18n","_Link","_ScreenReaderText","_jsxRuntime","_interopRequireDefault","e","__esModule","default","bannerRoleValues","exports","bannerSeverityValues","Banner","linkRel","linkTarget","linkText","linkUrl","onClose","onLinkClick","role","severity","testId","text","translate","t","useTranslation","jsxs","_Alert2","variant","children","jsx","ScreenReaderText","_AlertTitle2","Link","href","onClick","rel","target","MemoizedBanner","memo","displayName"],"sources":["../../src/Banner.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Alert, AlertColor, AlertProps, AlertTitle } from \"@mui/material\";\nimport { memo } from \"react\";\n\nimport type { HtmlProps } from \"./HtmlProps.js\";\n\nimport { useTranslation } from \"./i18n.generated/i18n.js\";\nimport { Link, LinkProps } from \"./Link.js\";\nimport { ScreenReaderText } from \"./ScreenReaderText.js\";\n\nexport const bannerRoleValues = [\"status\", \"alert\"] as const;\nexport const bannerSeverityValues: AlertColor[] = [\n  \"success\",\n  \"info\",\n  \"warning\",\n  \"error\",\n];\n\nexport type BannerProps = {\n  /**\n   * Called when the user clicks the close button. When undefined, the close button is not shown.\n   */\n  onClose?: AlertProps[\"onClose\"];\n  /**\n   * Sets the ARIA live-region role.\n   * - If `'status'`, announces updates politely; use for non-critical dynamic messages.\n   * - If `'alert'`, announces updates assertively; use for errors or urgent information.\n   */\n  role?: (typeof bannerRoleValues)[number];\n  /**\n   * Visual severity level that controls the banner's color and icon.\n   */\n  severity: (typeof bannerSeverityValues)[number];\n  /**\n   * Primary message text displayed inside the banner.\n   */\n  text: string;\n} & Pick<HtmlProps, \"testId\" | \"translate\"> &\n  // if linkText is provided, either linkUrl or onLinkClick must be provided\n  (\n    | {\n        /** The `rel` attribute of the action link. */\n        linkRel?: LinkProps[\"rel\"];\n        /** The `target` attribute of the action link (e.g., `\"_blank\"`). */\n        linkTarget?: LinkProps[\"target\"];\n        /** Visible label for the action link rendered after the banner text. */\n        linkText: string;\n        /** The URL the action link navigates to. Required when `onLinkClick` is not provided. */\n        linkUrl: LinkProps[\"href\"];\n        onLinkClick?: never;\n      }\n    | {\n        linkRel?: never;\n        linkTarget?: never;\n        /** Visible label for the action link rendered after the banner text. */\n        linkText: string;\n        linkUrl?: never;\n        /** Click handler for the action link. Required when `linkUrl` is not provided. */\n        onLinkClick: LinkProps[\"onClick\"];\n      }\n    | {\n        linkRel?: never;\n        linkTarget?: never;\n        linkText?: never;\n        linkUrl?: never;\n        onLinkClick?: never;\n      }\n  );\n\n/**\n * A full-width alert strip displayed at the top of a page or section to communicate high-priority information such as errors, warnings, or status updates.\n */\nconst Banner = ({\n  linkRel,\n  linkTarget,\n  linkText,\n  linkUrl,\n  onClose,\n  onLinkClick,\n  role,\n  severity,\n  testId,\n  text,\n  translate,\n}: BannerProps) => {\n  const { t } = useTranslation();\n\n  return (\n    <Alert\n      data-se={testId}\n      onClose={onClose}\n      role={role}\n      severity={severity}\n      variant=\"banner\"\n    >\n      <ScreenReaderText translate={translate}>\n        {t(`severity.${severity}`)}\n      </ScreenReaderText>\n      <AlertTitle translate={translate}>{text}</AlertTitle>\n      {linkText && (\n        <Link\n          href={linkUrl ?? \"#\"}\n          onClick={onLinkClick}\n          rel={linkRel}\n          target={linkTarget}\n          translate={translate}\n          variant=\"monochrome\"\n        >\n          {linkText}\n        </Link>\n      )}\n    </Alert>\n  );\n};\n\nconst MemoizedBanner = memo(Banner);\nMemoizedBanner.displayName = \"Banner\";\n\nexport { MemoizedBanner as Banner };\n"],"mappings":";;;;;;;;AAaA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAAyD,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAK,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAnBzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWO,MAAMG,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAU;AACrD,MAAME,oBAAkC,GAAAD,OAAA,CAAAC,oBAAA,GAAG,CAChD,SAAS,EACT,MAAM,EACN,SAAS,EACT,OAAO,CACR;AAwDD,MAAMC,MAAM,GAAGA,CAAC;EACdC,OAAO;EACPC,UAAU;EACVC,QAAQ;EACRC,OAAO;EACPC,OAAO;EACPC,WAAW;EACXC,IAAI;EACJC,QAAQ;EACRC,MAAM;EACNC,IAAI;EACJC;AACW,CAAC,KAAK;EACjB,MAAM;IAAEC;EAAE,CAAC,GAAG,IAAAC,oBAAc,EAAC,CAAC;EAE9B,OACE,IAAArB,WAAA,CAAAsB,IAAA,EAAAC,OAAA,CAAAnB,OAAA;IACE,WAASa,MAAO;IAChBJ,OAAO,EAAEA,OAAQ;IACjBE,IAAI,EAAEA,IAAK;IACXC,QAAQ,EAAEA,QAAS;IACnBQ,OAAO,EAAC,QAAQ;IAAAC,QAAA,GAEhB,IAAAzB,WAAA,CAAA0B,GAAA,EAAC3B,iBAAA,CAAA4B,gBAAgB;MAACR,SAAS,EAAEA,SAAU;MAAAM,QAAA,EACpCL,CAAC,CAAC,YAAYJ,QAAQ,EAAE;IAAC,CACV,CAAC,EACnB,IAAAhB,WAAA,CAAA0B,GAAA,EAAAE,YAAA,CAAAxB,OAAA;MAAYe,SAAS,EAAEA,SAAU;MAAAM,QAAA,EAAEP;IAAI,CAAa,CAAC,EACpDP,QAAQ,IACP,IAAAX,WAAA,CAAA0B,GAAA,EAAC5B,KAAA,CAAA+B,IAAI;MACHC,IAAI,EAAElB,OAAO,IAAI,GAAI;MACrBmB,OAAO,EAAEjB,WAAY;MACrBkB,GAAG,EAAEvB,OAAQ;MACbwB,MAAM,EAAEvB,UAAW;MACnBS,SAAS,EAAEA,SAAU;MACrBK,OAAO,EAAC,YAAY;MAAAC,QAAA,EAEnBd;IAAQ,CACL,CACP;EAAA,CACI,CAAC;AAEZ,CAAC;AAED,MAAMuB,cAAc,GAAA5B,OAAA,CAAAE,MAAA,GAAG,IAAA2B,WAAI,EAAC3B,MAAM,CAAC;AACnC0B,cAAc,CAACE,WAAW,wCAAW","ignoreList":[]}