{"version":3,"file":"AdminPortalWrapper.mjs","sources":["../../../../../../../web/src/adminPortal/AdminPortalWrapper.tsx"],"sourcesContent":["import { Messages } from '@lingui/core';\nimport { Theme, ThemeProvider } from '@mui/material';\nimport { StytchProjectConfigurationInput } from '@stytch/core/public';\nimport React, { useMemo } from 'react';\n\nimport { StytchB2BClient } from '../b2b/StytchB2BClient';\nimport { messages } from '../messages/adminPortal/en';\nimport { I18nProviderWrapper } from '../ui/components/atoms/I18nProviderWrapper';\nimport { ToastContextProvider } from './components/Toast';\nimport { MainContainer } from './MainContainer';\nimport { StytchClientContext } from './StytchClientContext';\nimport { AdminPortalCommonProps } from './utils/AdminPortalCommonProps';\nimport { getTheme } from './utils/theme';\n\nconst ContextProvider = <TProjectConfiguration extends StytchProjectConfigurationInput, TMountOptions>({\n  theme,\n  options,\n  children,\n}: {\n  theme: Theme;\n  options: AdminPortalOptions<TProjectConfiguration, TMountOptions>;\n  children?: React.ReactNode;\n}) => {\n  const clientAndConfig = useMemo(\n    () => ({\n      client: options.client as StytchB2BClient<StytchProjectConfigurationInput>,\n      config: options.config,\n    }),\n    [options],\n  );\n  return (\n    <ThemeProvider theme={theme}>\n      <I18nProviderWrapper messages={messages as Messages}>\n        <StytchClientContext.Provider value={clientAndConfig}>{children}</StytchClientContext.Provider>\n      </I18nProviderWrapper>\n    </ThemeProvider>\n  );\n};\n\ninterface AdminPortalOptions<TProjectConfiguration extends StytchProjectConfigurationInput, TMountOptions>\n  extends AdminPortalCommonProps<TProjectConfiguration> {\n  config?: TMountOptions;\n}\n\nexport const AdminPortalWrapper = <TProjectConfiguration extends StytchProjectConfigurationInput, TMountOptions>({\n  children,\n  options,\n}: {\n  children?: React.ReactNode;\n  options: AdminPortalOptions<TProjectConfiguration, TMountOptions>;\n}) => {\n  const theme = getTheme(options.styles);\n\n  return (\n    <ContextProvider options={options} theme={theme}>\n      <MainContainer>\n        <ToastContextProvider>{children}</ToastContextProvider>\n      </MainContainer>\n    </ContextProvider>\n  );\n};\n"],"names":["ContextProvider","theme","options","children","clientAndConfig","useMemo","client","config","React","ThemeProvider","I18nProviderWrapper","messages","StytchClientContext","Provider","value","AdminPortalWrapper","getTheme","styles","MainContainer","ToastContextProvider"],"mappings":";;;;;;;;;;AAcA,MAAMA,eAAAA,GAAkB,CAA+E,EACrGC,KAAK,EACLC,OAAO,EACPC,QAAQ,EAKT,GAAA;IACC,MAAMC,eAAAA,GAAkBC,CAAAA,CACtB,KAAO;AACLC,YAAAA,MAAAA,EAAQJ,QAAQI,MAAM;AACtBC,YAAAA,MAAAA,EAAQL,QAAQK;AAClB,SAAA,CAAA,EACA;AAACL,QAAAA;AAAQ,KAAA,CAAA;AAEX,IAAA,qBACEM,EAAA,CAAA,aAAA,CAACC,aAAAA,EAAAA;QAAcR,KAAAA,EAAOA;qBACpBO,EAAA,CAAA,aAAA,CAACE,mBAAAA,EAAAA;QAAoBC,QAAAA,EAAUA;AAC7B,KAAA,gBAAAH,EAAA,CAAA,aAAA,CAACI,oBAAoBC,QAAQ,EAAA;QAACC,KAAAA,EAAOV;AAAkBD,KAAAA,EAAAA,QAAAA,CAAAA,CAAAA,CAAAA;AAI/D,CAAA;MAOaY,kBAAAA,GAAqB,CAA+E,EAC/GZ,QAAQ,EACRD,OAAO,EAIR,GAAA;IACC,MAAMD,KAAAA,GAAQe,QAAAA,CAASd,OAAAA,CAAQe,MAAM,CAAA;AAErC,IAAA,qBACET,EAAA,CAAA,aAAA,CAACR,eAAAA,EAAAA;QAAgBE,OAAAA,EAASA,OAAAA;QAASD,KAAAA,EAAOA;qBACxCO,EAAA,CAAA,aAAA,CAACU,aAAAA,EAAAA,IAAAA,gBACCV,iBAACW,oBAAAA,EAAAA,IAAAA,EAAsBhB,QAAAA,CAAAA,CAAAA,CAAAA;AAI/B;;;;"}