{"version":3,"file":"OdysseyProvider.cjs","names":["_react","require","_AnimationContext","_ConditionalWrapper","_CssBaseline","_FullScreenOverlayContext","_i18n","_OdysseyCacheProvider","_OdysseyThemeProvider","_jsxRuntime","_interopRequireDefault","e","__esModule","default","scopedCssBaselineStyles","height","OdysseyProvider","children","contrastMode","designTokensOverride","emotionRoot","emotionRootElement","fullScreenOverlayId","hasAnimations","hasCssBaseline","hasGlobalCss","hasScopedCssBaseline","hasTranslationProvider","hasWrapperElement","languageCode","nonce","overlayParentElement","overlayType","shadowDomElement","shadowRootElement","stylisPlugins","themeOverride","translationOverrides","TranslationWrapper","useMemo","jsx","TranslationProvider","OdysseyCacheProvider","OdysseyThemeProvider","AnimationProvider","ConditionalWrapper","isWrapped","Wrapper","jsxs","FullScreenOverlayProvider","hasShadowDom","Boolean","CssBaseline","_ScopedCssBaseline2","sx","MemoizedOdysseyProvider","exports","memo","displayName"],"sources":["../../src/OdysseyProvider.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 { ScopedCssBaseline } from \"@mui/material\";\nimport { memo, ReactNode, useMemo } from \"react\";\n\nimport { AnimationProvider } from \"./AnimationContext.js\";\nimport {\n  ConditionalWrapper,\n  ConditionalWrapperProps,\n} from \"./ConditionalWrapper.js\";\nimport { CssBaseline } from \"./CssBaseline.js\";\nimport {\n  FullScreenOverlayProvider,\n  FullScreenOverlayProviderProps,\n} from \"./FullScreenOverlayContext.js\";\nimport {\n  type DefaultSupportedLanguages,\n  TranslationProvider as OdysseyTranslationProvider,\n  type TranslationProviderProps as OdysseyTranslationProviderProps,\n} from \"./i18n.generated/i18n.js\";\nimport {\n  OdysseyCacheProvider,\n  OdysseyCacheProviderProps,\n} from \"./OdysseyCacheProvider.js\";\nimport {\n  OdysseyThemeProvider,\n  OdysseyThemeProviderProps,\n} from \"./OdysseyThemeProvider.js\";\n\nconst scopedCssBaselineStyles = {\n  height: \"inherit\",\n};\n\nexport type OdysseyProviderProps<\n  SupportedLanguages extends string = DefaultSupportedLanguages,\n> = Omit<OdysseyCacheProviderProps, \"hasShadowDom\"> &\n  FullScreenOverlayProviderProps &\n  OdysseyThemeProviderProps &\n  OdysseyTranslationProviderProps<SupportedLanguages> & {\n    /** The content to render within the Odyssey context providers. */\n    children: ReactNode;\n    /**\n     * If `true`, Odyssey components may animate unless the user prefers reduced motion.\n     * @default true\n     */\n    hasAnimations?: boolean;\n    /**\n     * If `true`, emits global CssBaseline reset styles.\n     * @default true\n     */\n    hasCssBaseline?: boolean;\n    /**\n     * If `true`, wraps children in a ScopedCssBaseline element. Note that this adds an extra `div` to the DOM.\n     * @default true\n     */\n    hasScopedCssBaseline?: boolean;\n    /**\n     * If `true`, wraps children with OdysseyTranslationProvider. Set to `false` only when a translation provider already exists higher in the tree.\n     * @default true\n     */\n    hasTranslationProvider?: boolean;\n  };\n\n/**\n * Root provider for Odyssey. Composes theme, cache, translation, and full-screen overlay contexts in a single wrapper. Every application using Odyssey must render this provider at or near the tree root.\n */\nconst OdysseyProvider = <SupportedLanguages extends string>({\n  children,\n  contrastMode,\n  designTokensOverride,\n  emotionRoot,\n  emotionRootElement,\n  fullScreenOverlayId,\n  hasAnimations = true,\n  hasCssBaseline: hasGlobalCss,\n  hasScopedCssBaseline = true,\n  hasTranslationProvider = true,\n  hasWrapperElement,\n  languageCode,\n  nonce,\n  overlayParentElement,\n  overlayType,\n  shadowDomElement,\n  shadowRootElement,\n  stylisPlugins,\n  themeOverride,\n  translationOverrides,\n}: OdysseyProviderProps<SupportedLanguages>) => {\n  const TranslationWrapper = useMemo<ConditionalWrapperProps[\"Wrapper\"]>(\n    () => (children) => (\n      <OdysseyTranslationProvider<SupportedLanguages>\n        languageCode={languageCode}\n        translationOverrides={translationOverrides}\n      >\n        {children}\n      </OdysseyTranslationProvider>\n    ),\n    [languageCode, translationOverrides],\n  );\n\n  return (\n    <OdysseyCacheProvider\n      emotionRootElement={emotionRootElement || emotionRoot}\n      nonce={nonce}\n      stylisPlugins={stylisPlugins}\n    >\n      <OdysseyThemeProvider\n        contrastMode={contrastMode}\n        designTokensOverride={designTokensOverride}\n        hasWrapperElement={hasWrapperElement}\n        shadowRootElement={shadowRootElement ?? shadowDomElement}\n        themeOverride={themeOverride}\n      >\n        <AnimationProvider hasAnimations={hasAnimations}>\n          <ConditionalWrapper\n            isWrapped={hasTranslationProvider}\n            Wrapper={TranslationWrapper}\n          >\n            <FullScreenOverlayProvider\n              fullScreenOverlayId={fullScreenOverlayId}\n              hasShadowDom={Boolean(shadowRootElement || shadowDomElement)}\n              overlayParentElement={overlayParentElement}\n              overlayType={overlayType}\n            >\n              {hasGlobalCss && <CssBaseline />}\n\n              {hasScopedCssBaseline ? (\n                <ScopedCssBaseline sx={scopedCssBaselineStyles}>\n                  {children}\n                </ScopedCssBaseline>\n              ) : (\n                children\n              )}\n            </FullScreenOverlayProvider>\n          </ConditionalWrapper>\n        </AnimationProvider>\n      </OdysseyThemeProvider>\n    </OdysseyCacheProvider>\n  );\n};\n\nconst MemoizedOdysseyProvider = memo(OdysseyProvider);\nMemoizedOdysseyProvider.displayName = \"OdysseyProvider\";\n\nexport { MemoizedOdysseyProvider as OdysseyProvider };\n"],"mappings":"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","ignoreList":[]}