{"version":3,"file":"ThemeProvider.mjs","sources":["../../../../../../../../node_modules/@mui/private-theming/ThemeProvider/ThemeProvider.js"],"sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@mui/utils';\nimport ThemeContext from \"../useTheme/ThemeContext.js\";\nimport useTheme from \"../useTheme/index.js\";\nimport nested from \"./nested.js\";\n\n// To support composition of theme.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction mergeOuterLocalTheme(outerTheme, localTheme) {\n  if (typeof localTheme === 'function') {\n    const mergedTheme = localTheme(outerTheme);\n    if (process.env.NODE_ENV !== 'production') {\n      if (!mergedTheme) {\n        console.error(['MUI: You should return an object from your theme function, i.e.', '<ThemeProvider theme={() => ({})} />'].join('\\n'));\n      }\n    }\n    return mergedTheme;\n  }\n  return {\n    ...outerTheme,\n    ...localTheme\n  };\n}\n\n/**\n * This component takes a `theme` prop.\n * It makes the `theme` available down the React tree thanks to React context.\n * This component should preferably be used at **the root of your component tree**.\n */\nfunction ThemeProvider(props) {\n  const {\n    children,\n    theme: localTheme\n  } = props;\n  const outerTheme = useTheme();\n  if (process.env.NODE_ENV !== 'production') {\n    if (outerTheme === null && typeof localTheme === 'function') {\n      console.error(['MUI: You are providing a theme function prop to the ThemeProvider component:', '<ThemeProvider theme={outerTheme => outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n    }\n  }\n  const theme = React.useMemo(() => {\n    const output = outerTheme === null ? {\n      ...localTheme\n    } : mergeOuterLocalTheme(outerTheme, localTheme);\n    if (output != null) {\n      output[nested] = outerTheme !== null;\n    }\n    return output;\n  }, [localTheme, outerTheme]);\n  return /*#__PURE__*/_jsx(ThemeContext.Provider, {\n    value: theme,\n    children: children\n  });\n}\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = {\n  /**\n   * Your component tree.\n   */\n  children: PropTypes.node,\n  /**\n   * A theme object. You can provide a function to extend the outer theme.\n   */\n  theme: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n  process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = exactProp(ThemeProvider.propTypes) : void 0;\n}\nexport default ThemeProvider;"],"names":["ThemeProvider","React.useMemo","_jsx"],"mappings":";;;;;;;AASA,SAAS,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE;AACtD,EAAE,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;AACxC,IAAI,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;AAM9C,IAAI,OAAO,WAAW;AACtB,EAAE;AACF,EAAE,OAAO;AACT,IAAI,GAAG,UAAU;AACjB,IAAI,GAAG;AACP,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASA,eAAa,CAAC,KAAK,EAAE;AAC9B,EAAE,MAAM;AACR,IAAI,QAAQ;AACZ,IAAI,KAAK,EAAE;AACX,GAAG,GAAG,KAAK;AACX,EAAE,MAAM,UAAU,GAAG,QAAQ,EAAE;AAM/B,EAAE,MAAM,KAAK,GAAGC,CAAa,CAAC,MAAM;AACpC,IAAI,MAAM,MAAM,GAAG,UAAU,KAAK,IAAI,GAAG;AACzC,MAAM,GAAG;AACT,KAAK,GAAG,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC;AACpD,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE;AACxB,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,KAAK,IAAI;AAC1C,IAAI;AACJ,IAAI,OAAO,MAAM;AACjB,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAC9B,EAAE,oBAAoBC,CAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AAClD,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,QAAQ,EAAE;AACd,GAAG,CAAC;AACJ;;;;","x_google_ignoreList":[0]}