{"version":3,"sources":["../../../../src/browser/useMediaQuery/index.ts"],"sourcesContent":["\"use client\";\nimport type { Observable } from \"@legendapp/state\";\nimport { useScope, toObs } from \"@usels/core\";\nimport { createMediaQuery } from \"./core\";\n\nexport { createMediaQuery, evaluateSSRQuery } from \"./core\";\nexport type { UseMediaQueryOptions, UseMediaQueryReturn } from \"./core\";\n\n/**\n * Reactive CSS media query hook.\n *\n * Wraps {@link createMediaQuery} in a `useScope` factory so that the\n * underlying `MediaQueryList` and its `change` listener live for the exact\n * lifetime of the component and re-bind automatically when the query\n * Observable changes.\n */\nexport type UseMediaQuery = typeof createMediaQuery;\nexport const useMediaQuery: UseMediaQuery = (query, options) => {\n  return useScope(\n    (p, opts) => {\n      const p$ = toObs(p);\n      const opts$ = toObs(opts, { window: \"opaque\" });\n      return createMediaQuery(p$.query as Observable<string>, opts$);\n    },\n    { query },\n    (options ?? {}) as Record<string, unknown>\n  );\n};\n"],"mappings":";AAEA,SAAS,UAAU,aAAa;AAChC,SAAS,wBAAwB;AAEjC,SAAS,oBAAAA,mBAAkB,wBAAwB;AAY5C,MAAM,gBAA+B,CAAC,OAAO,YAAY;AAC9D,SAAO;AAAA,IACL,CAAC,GAAG,SAAS;AACX,YAAM,KAAK,MAAM,CAAC;AAClB,YAAM,QAAQ,MAAM,MAAM,EAAE,QAAQ,SAAS,CAAC;AAC9C,aAAO,iBAAiB,GAAG,OAA6B,KAAK;AAAA,IAC/D;AAAA,IACA,EAAE,MAAM;AAAA,IACP,WAAW,CAAC;AAAA,EACf;AACF;","names":["createMediaQuery"]}