{"version":3,"file":"Toast.cjs","names":["_react","require","_Button","_i18n","_index","_Link","_ScreenReaderText","_jsxRuntime","_interopRequireDefault","e","__esModule","default","toastRoleValues","exports","toastSeverityValues","ClickAwayListenerProps","onClickAway","Toast","autoHideDuration","isDismissable","linkText","linkUrl","isVisible","isVisibleProp","onHide","onHideProp","role","severity","testId","text","translate","t","useTranslation","setIsVisible","useState","useEffect","useCallback","jsx","Fragment","children","_Snackbar2","undefined","className","onClose","open","jsxs","_Alert2","action","Button","ariaLabel","onClick","size","startIcon","CloseIcon","variant","_AlertTitle2","ScreenReaderText","Link","href","MemoizedToast","memo","displayName"],"sources":["../../src/Toast.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, AlertTitle, Snackbar } from \"@mui/material\";\nimport { memo, useCallback, useEffect, useState } from \"react\";\n\nimport { Button } from \"./Buttons/Button.js\";\nimport { HtmlProps } from \"./HtmlProps.js\";\nimport { useTranslation } from \"./i18n.generated/i18n.js\";\nimport { CloseIcon } from \"./icons.generated/index.js\";\nimport { Link } from \"./Link.js\";\nimport { ScreenReaderText } from \"./ScreenReaderText.js\";\n\nexport const toastRoleValues = [\"status\", \"alert\"] as const;\nexport const toastSeverityValues = [\n  \"success\",\n  \"info\",\n  \"warning\",\n  \"error\",\n] as const;\n\nexport type ToastProps = {\n  /**\n   * How long the Toast should appear before automatically disappearing, in milliseconds. Only takes effect when the Toast is not dismissible.\n   * @default 6000\n   */\n  autoHideDuration?: number;\n  /**\n   * If `true`, the toast includes a close button allowing the user to dismiss it manually.\n   */\n  isDismissable?: boolean;\n  /**\n   * If `true`, the toast is visible.\n   */\n  isVisible?: boolean;\n  /**\n   * The visible label for the link rendered when `linkUrl` is provided. Has no effect without `linkUrl`.\n   * @default \"Learn more\"\n   */\n  linkText?: string;\n  /**\n   * If defined, the Toast will include a link to the URL\n   */\n  linkUrl?: string;\n  /**\n   * Called when the Toast is closed, either automatically or by user dismissal.\n   */\n  onHide?: () => void;\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 toastRoleValues)[number];\n  /**\n   * Controls the color and icon of the toast.\n   */\n  severity: (typeof toastSeverityValues)[number];\n  /**\n   * The text content of the Toast\n   */\n  text: string;\n} & Pick<HtmlProps, \"testId\" | \"translate\">;\n\nconst ClickAwayListenerProps = { onClickAway: () => false };\n\n/**\n * A brief, auto-dismissing notification used to communicate non-critical feedback such as confirmations, warnings, or errors. Renders as a Snackbar overlay with optional dismiss and link actions.\n */\nconst Toast = ({\n  autoHideDuration = 6000,\n  isDismissable,\n  linkText,\n  linkUrl,\n  isVisible: isVisibleProp,\n  onHide: onHideProp,\n  role,\n  severity,\n  testId,\n  text,\n  translate,\n}: ToastProps) => {\n  const { t } = useTranslation();\n  const [isVisible, setIsVisible] = useState(isVisibleProp);\n\n  useEffect(() => {\n    setIsVisible(isVisibleProp);\n  }, [isVisibleProp]);\n\n  const onHide = useCallback(() => {\n    setIsVisible(false);\n    onHideProp?.();\n  }, [onHideProp]);\n\n  return (\n    <>\n      <Snackbar\n        autoHideDuration={\n          isDismissable || autoHideDuration <= 0 ? undefined : autoHideDuration\n        }\n        className=\"Toast\"\n        ClickAwayListenerProps={ClickAwayListenerProps}\n        onClose={onHide}\n        open={isVisible}\n      >\n        <Alert\n          action={\n            isDismissable === true && (\n              <Button\n                ariaLabel={t(\"close.text\")}\n                onClick={onHide}\n                size=\"small\"\n                startIcon={<CloseIcon />}\n                variant=\"floating\"\n              />\n            )\n          }\n          data-se={testId}\n          role={role}\n          severity={severity}\n          variant=\"toast\"\n        >\n          <AlertTitle translate={translate}>\n            <ScreenReaderText translate={translate}>\n              {t(`severity.${severity}`)}:\n            </ScreenReaderText>\n            {text}\n          </AlertTitle>\n          {linkUrl && (\n            <Link href={linkUrl} translate={translate} variant=\"monochrome\">\n              {linkText}\n            </Link>\n          )}\n        </Alert>\n      </Snackbar>\n    </>\n  );\n};\n\nconst MemoizedToast = memo(Toast);\nMemoizedToast.displayName = \"Toast\";\n\nexport { MemoizedToast as Toast };\n"],"mappings":"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","ignoreList":[]}