{"version":3,"sources":["../../../../src/browser/usePreferredReducedMotion/core.ts"],"sourcesContent":["import { observable } from \"@legendapp/state\";\nimport type { ReadonlyObservable } from \"@usels/core\";\nimport { createMediaQuery } from \"../useMediaQuery/core\";\n\nexport type ReducedMotionPreference = \"reduce\" | \"no-preference\";\n\nexport type UsePreferredReducedMotionReturn = ReadonlyObservable<ReducedMotionPreference>;\n\n/**\n * Framework-agnostic reactive `prefers-reduced-motion` tracker.\n *\n * Composes `createMediaQuery` and exposes a computed `Observable` mapping\n * to `'reduce'` / `'no-preference'`. Must be called inside a `useScope` factory.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function createPreferredReducedMotion(): UsePreferredReducedMotionReturn {\n  const isReduced$ = createMediaQuery(\"(prefers-reduced-motion: reduce)\");\n\n  const motion$ = observable<ReducedMotionPreference>(() =>\n    isReduced$.get() ? \"reduce\" : \"no-preference\"\n  );\n\n  return motion$ as ReadonlyObservable<ReducedMotionPreference>;\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAE3B,SAAS,wBAAwB;AAAA;AAa1B,SAAS,+BAAgE;AAC9E,QAAM,aAAa,iBAAiB,kCAAkC;AAEtE,QAAM,UAAU;AAAA,IAAoC,MAClD,WAAW,IAAI,IAAI,WAAW;AAAA,EAChC;AAEA,SAAO;AACT;","names":[]}