{"version":3,"file":"ToastStack.cjs","names":["_react","require","_FullScreenOverlay","_OdysseyThemeProviderPropsContext","_jsxRuntime","_interopRequireDefault","e","__esModule","default","ToastStackContent","children","shadowRootElement","useOdysseyThemeProviderPropsContext","jsx","_Portal2","container","_Snackbar2","open","_Box2","sx","display","flexDirection","gap","ToastStack","FullScreenOverlay","MemoizedToastStack","exports","memo","displayName"],"sources":["../../src/ToastStack.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 { Box, Portal, Snackbar } from \"@mui/material\";\nimport { memo, ReactElement } from \"react\";\n\nimport { FullScreenOverlay } from \"./FullScreenOverlay.js\";\nimport { useOdysseyThemeProviderPropsContext } from \"./OdysseyThemeProviderPropsContext.js\";\nimport { Toast } from \"./Toast.js\";\n\nexport type ToastListProps = {\n  /**\n   * The Toast or array of Toasts within the ToastStack\n   */\n  children: ReactElement<typeof Toast> | Array<ReactElement<typeof Toast>>;\n};\n\n// Inside `FullScreenOverlay`, `shadowRootElement` is the shared overlay root Dialog's Modal also uses. MUI's Snackbar renders inline, so we Portal it there ourselves — placing its DOM (and thus its z-index) in the same stacking context as the Dialog backdrop.\nconst ToastStackContent = ({ children }: ToastListProps) => {\n  const { shadowRootElement } = useOdysseyThemeProviderPropsContext();\n\n  return (\n    <Portal container={shadowRootElement}>\n      <Snackbar open={true}>\n        <Box\n          sx={{\n            display: \"flex\",\n            flexDirection: \"column-reverse\",\n            gap: 2,\n          }}\n        >\n          {children}\n        </Box>\n      </Snackbar>\n    </Portal>\n  );\n};\n\n/**\n * A container that stacks Toast notifications in a fixed position on the screen. Renders its Toast children in a vertically stacked column for simultaneous display.\n */\nconst ToastStack = ({ children }: ToastListProps) => {\n  return (\n    <FullScreenOverlay>\n      <ToastStackContent>{children}</ToastStackContent>\n    </FullScreenOverlay>\n  );\n};\n\nconst MemoizedToastStack = memo(ToastStack);\nMemoizedToastStack.displayName = \"ToastStack\";\n\nexport { MemoizedToastStack as ToastStack };\n"],"mappings":";;;;;;;;;AAaA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,iCAAA,GAAAF,OAAA;AAA4F,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAI,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAhB5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAiBA,MAAMG,iBAAiB,GAAGA,CAAC;EAAEC;AAAyB,CAAC,KAAK;EAC1D,MAAM;IAAEC;EAAkB,CAAC,GAAG,IAAAC,qEAAmC,EAAC,CAAC;EAEnE,OACE,IAAAR,WAAA,CAAAS,GAAA,EAAAC,QAAA,CAAAN,OAAA;IAAQO,SAAS,EAAEJ,iBAAkB;IAAAD,QAAA,EACnC,IAAAN,WAAA,CAAAS,GAAA,EAAAG,UAAA,CAAAR,OAAA;MAAUS,IAAI,EAAE,IAAK;MAAAP,QAAA,EACnB,IAAAN,WAAA,CAAAS,GAAA,EAAAK,KAAA,CAAAV,OAAA;QACEW,EAAE,EAAE;UACFC,OAAO,EAAE,MAAM;UACfC,aAAa,EAAE,gBAAgB;UAC/BC,GAAG,EAAE;QACP,CAAE;QAAAZ,QAAA,EAEDA;MAAQ,CACN;IAAC,CACE;EAAC,CACL,CAAC;AAEb,CAAC;AAKD,MAAMa,UAAU,GAAGA,CAAC;EAAEb;AAAyB,CAAC,KAAK;EACnD,OACE,IAAAN,WAAA,CAAAS,GAAA,EAACX,kBAAA,CAAAsB,iBAAiB;IAAAd,QAAA,EAChB,IAAAN,WAAA,CAAAS,GAAA,EAACJ,iBAAiB;MAAAC,QAAA,EAAEA;IAAQ,CAAoB;EAAC,CAChC,CAAC;AAExB,CAAC;AAED,MAAMe,kBAAkB,GAAAC,OAAA,CAAAH,UAAA,GAAG,IAAAI,WAAI,EAACJ,UAAU,CAAC;AAC3CE,kBAAkB,CAACG,WAAW,4CAAe","ignoreList":[]}