{"version":3,"file":"useMediaQuery.mjs","sources":["../../../../../../../../../node_modules/@mui/system/esm/useMediaQuery/useMediaQuery.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nimport { getThemeProps } from \"../useThemeProps/index.js\";\nimport useTheme from \"../useThemeWithoutDefault/index.js\";\n// TODO React 17: Remove `useMediaQueryOld` once React 17 support is removed\nfunction useMediaQueryOld(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr) {\n  const [match, setMatch] = React.useState(() => {\n    if (noSsr && matchMedia) {\n      return matchMedia(query).matches;\n    }\n    if (ssrMatchMedia) {\n      return ssrMatchMedia(query).matches;\n    }\n\n    // Once the component is mounted, we rely on the\n    // event listeners to return the correct matches value.\n    return defaultMatches;\n  });\n  useEnhancedEffect(() => {\n    if (!matchMedia) {\n      return undefined;\n    }\n    const queryList = matchMedia(query);\n    const updateMatch = () => {\n      setMatch(queryList.matches);\n    };\n    updateMatch();\n    queryList.addEventListener('change', updateMatch);\n    return () => {\n      queryList.removeEventListener('change', updateMatch);\n    };\n  }, [query, matchMedia]);\n  return match;\n}\n\n// See https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379 for why\nconst safeReact = {\n  ...React\n};\nconst maybeReactUseSyncExternalStore = safeReact.useSyncExternalStore;\nfunction useMediaQueryNew(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr) {\n  const getDefaultSnapshot = React.useCallback(() => defaultMatches, [defaultMatches]);\n  const getServerSnapshot = React.useMemo(() => {\n    if (noSsr && matchMedia) {\n      return () => matchMedia(query).matches;\n    }\n    if (ssrMatchMedia !== null) {\n      const {\n        matches\n      } = ssrMatchMedia(query);\n      return () => matches;\n    }\n    return getDefaultSnapshot;\n  }, [getDefaultSnapshot, query, ssrMatchMedia, noSsr, matchMedia]);\n  const [getSnapshot, subscribe] = React.useMemo(() => {\n    if (matchMedia === null) {\n      return [getDefaultSnapshot, () => () => {}];\n    }\n    const mediaQueryList = matchMedia(query);\n    return [() => mediaQueryList.matches, notify => {\n      mediaQueryList.addEventListener('change', notify);\n      return () => {\n        mediaQueryList.removeEventListener('change', notify);\n      };\n    }];\n  }, [getDefaultSnapshot, matchMedia, query]);\n  const match = maybeReactUseSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n  return match;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function unstable_createUseMediaQuery(params = {}) {\n  const {\n    themeId\n  } = params;\n  return function useMediaQuery(queryInput, options = {}) {\n    let theme = useTheme();\n    if (theme && themeId) {\n      theme = theme[themeId] || theme;\n    }\n    // Wait for jsdom to support the match media feature.\n    // All the browsers MUI support have this built-in.\n    // This defensive check is here for simplicity.\n    // Most of the time, the match media logic isn't central to people tests.\n    const supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n    const {\n      defaultMatches = false,\n      matchMedia = supportMatchMedia ? window.matchMedia : null,\n      ssrMatchMedia = null,\n      noSsr = false\n    } = getThemeProps({\n      name: 'MuiUseMediaQuery',\n      props: options,\n      theme\n    });\n    if (process.env.NODE_ENV !== 'production') {\n      if (typeof queryInput === 'function' && theme === null) {\n        console.error(['MUI: The `query` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n      }\n    }\n    let query = typeof queryInput === 'function' ? queryInput(theme) : queryInput;\n    query = query.replace(/^@media( ?)/m, '');\n    if (query.includes('print')) {\n      console.warn([`MUI: You have provided a \\`print\\` query to the \\`useMediaQuery\\` hook.`, 'Using the print media query to modify print styles can lead to unexpected results.', 'Consider using the `displayPrint` field in the `sx` prop instead.', 'More information about `displayPrint` on our docs: https://mui.com/system/display/#display-in-print.'].join('\\n'));\n    }\n    const useMediaQueryImplementation = maybeReactUseSyncExternalStore !== undefined ? useMediaQueryNew : useMediaQueryOld;\n    const match = useMediaQueryImplementation(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr);\n    if (process.env.NODE_ENV !== 'production') {\n      // eslint-disable-next-line react-hooks/rules-of-hooks\n      React.useDebugValue({\n        query,\n        match\n      });\n    }\n    return match;\n  };\n}\nconst useMediaQuery = unstable_createUseMediaQuery();\nexport default useMediaQuery;"],"names":[],"mappings":"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","x_google_ignoreList":[0]}