{"version":3,"sources":["../src/core/Hooks/useMediaQuery.ts","../src/core/Hooks/useColorScheme.ts","../src/core/Hooks/useContrast.ts"],"names":["ThColorScheme","useState","useEffect","ThContrast"],"mappings":"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","file":"chunk-NQ2ZSGCX.mjs","sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\n\nexport const useMediaQuery = (query: string | null) => {\n  const [matches, setMatches] = useState(false);\n\n  useEffect(() => {\n    if (!query) return;\n\n    const mq = window.matchMedia(query);\n\n    // Checking if media query is supported or well-formed\n    // The media property is the normalized and resolved string representation of the query. \n    // If matchMedia encounters something it doesn’t understand, that changes to \"not all\"\n    const resolvedMediaQuery = mq.media;\n    if (query !== resolvedMediaQuery) {\n      console.error(\"Either this query is not supported or not well formed. Please double-check.\");\n      return;\n    };\n\n    if (mq.matches !== matches) {\n      setMatches(mq.matches);\n    }\n\n    const handleMatch = () => setMatches(mq.matches);\n    mq.addEventListener(\"change\", handleMatch);\n\n    return () => mq.removeEventListener(\"change\", handleMatch);\n  }, [matches, query]);\n\n  return matches;\n}","\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport { useMediaQuery } from \"./useMediaQuery\";\n\nexport enum ThColorScheme {\n  light = \"light\",\n  dark = \"dark\"\n}\n\nexport const useColorScheme = (onChange?: (colorScheme: ThColorScheme) => void) => {\n  const [colorScheme, setColorScheme] = useState(ThColorScheme.light);\n  const prefersDarkMode = useMediaQuery(\"(prefers-color-scheme: dark)\");\n\n  useEffect(() => {\n    const scheme = prefersDarkMode ? ThColorScheme.dark : ThColorScheme.light;\n    setColorScheme(scheme);\n    onChange && onChange(scheme);\n  }, [onChange, prefersDarkMode]);\n\n  return colorScheme;\n}","\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport { useMediaQuery } from \"./useMediaQuery\";\n\nexport enum ThContrast {\n  none = \"no-preference\",\n  more = \"more\",\n  less = \"less\",\n  custom = \"custom\"\n}\n\nexport const useContrast = (onChange?: (contrast: ThContrast) => void) => {\n  const [contrast, setContrast] = useState(ThContrast.none);\n\n  const prefersNoContrast = useMediaQuery(`(prefers-contrast: ${ ThContrast.none })`);\n  const prefersLessContrast = useMediaQuery(`(prefers-contrast: ${ ThContrast.less })`);\n  const prefersMoreContrast = useMediaQuery(`(prefers-contrast: ${ ThContrast.more })`);\n  const prefersCustomContrast = useMediaQuery(`(prefers-contrast: ${ ThContrast.custom })`);\n\n  useEffect(() => {\n    let newContrast: ThContrast = ThContrast.none;\n    if (prefersNoContrast) {\n      newContrast = ThContrast.none;\n    } else if (prefersLessContrast) {\n      newContrast = ThContrast.less;\n    } else if (prefersMoreContrast) {\n      newContrast = ThContrast.more;\n    } else if (prefersCustomContrast) {\n      newContrast = ThContrast.custom;\n    }\n    setContrast(newContrast);\n    onChange && onChange(newContrast);\n  }, [onChange, prefersNoContrast, prefersLessContrast, prefersMoreContrast, prefersCustomContrast]);\n\n  return contrast;\n}"]}