{
  "version": 3,
  "sources": ["../../../src/media-query.ts"],
  "sourcesContent": ["import { createEffect, createSignal, onCleanup } from 'solid-js';\nimport { isServer } from 'solid-js/web';\n\nconst MEDIA = new Map<string, MediaQueryList>();\n\nfunction getMediaMatcher(query: string): MediaQueryList {\n  const media = MEDIA.get(query);\n  if (media) {\n    return media;\n  }\n  const newMedia = window.matchMedia(query);\n  MEDIA.set(query, newMedia);\n  return newMedia;\n}\n\nexport const useMediaQuery = isServer\n  ? (_query: string): (() => boolean) =>\n      () =>\n        false\n  : (query: string): (() => boolean) => {\n      const media = getMediaMatcher(query);\n      const [state, setState] = createSignal(false);\n\n      createEffect(() => {\n        const callback = () => {\n          setState(media.matches);\n        };\n        callback();\n        media.addEventListener('change', callback, false);\n        onCleanup(() => {\n          media.removeEventListener('change', callback, false);\n        });\n      });\n\n      return state;\n    };\n\nexport function usePrefersDark(): () => boolean {\n  return useMediaQuery('(prefers-color-scheme: dark)');\n}\n\nexport function usePrefersLight(): () => boolean {\n  return useMediaQuery('(prefers-color-scheme: light)');\n}\n\nexport function usePrefersReducedMotion(): () => boolean {\n  return useMediaQuery('(prefers-reduced-motion)');\n}\n"],
  "mappings": ";AAAA,SAAS,cAAc,cAAc,iBAAiB;AACtD,SAAS,gBAAgB;AAEzB,IAAM,QAAQ,oBAAI,IAA4B;AAE9C,SAAS,gBAAgB,OAA+B;AACtD,QAAM,QAAQ,MAAM,IAAI,KAAK;AAC7B,MAAI,OAAO;AACT,WAAO;AAAA,EACT;AACA,QAAM,WAAW,OAAO,WAAW,KAAK;AACxC,QAAM,IAAI,OAAO,QAAQ;AACzB,SAAO;AACT;AAEO,IAAM,gBAAgB,WACzB,CAAC,WACC,MACE,QACJ,CAAC,UAAmC;AAClC,QAAM,QAAQ,gBAAgB,KAAK;AACnC,QAAM,CAAC,OAAO,QAAQ,IAAI,aAAa,KAAK;AAE5C,eAAa,MAAM;AACjB,UAAM,WAAW,MAAM;AACrB,eAAS,MAAM,OAAO;AAAA,IACxB;AACA,aAAS;AACT,UAAM,iBAAiB,UAAU,UAAU,KAAK;AAChD,cAAU,MAAM;AACd,YAAM,oBAAoB,UAAU,UAAU,KAAK;AAAA,IACrD,CAAC;AAAA,EACH,CAAC;AAED,SAAO;AACT;AAEG,SAAS,iBAAgC;AAC9C,SAAO,cAAc,8BAA8B;AACrD;AAEO,SAAS,kBAAiC;AAC/C,SAAO,cAAc,+BAA+B;AACtD;AAEO,SAAS,0BAAyC;AACvD,SAAO,cAAc,0BAA0B;AACjD;",
  "names": []
}
