{"version":3,"sources":["../../../../src/browser/usePreferredContrast/core.ts"],"sourcesContent":["import { observable } from \"@legendapp/state\";\nimport type { ReadonlyObservable } from \"@usels/core\";\nimport { createMediaQuery } from \"../useMediaQuery/core\";\n\nexport type ContrastPreference = \"more\" | \"less\" | \"custom\" | \"no-preference\";\n\nexport type UsePreferredContrastReturn = ReadonlyObservable<ContrastPreference>;\n\n/**\n * Framework-agnostic reactive `prefers-contrast` tracker.\n *\n * Composes three `createMediaQuery` calls (`more`, `less`, `custom`) and\n * exposes a computed `Observable` mapping them to the matching preference\n * name, or `'no-preference'`. Must be called inside a `useScope` factory.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function createPreferredContrast(): UsePreferredContrastReturn {\n  const isMore$ = createMediaQuery(\"(prefers-contrast: more)\");\n  const isLess$ = createMediaQuery(\"(prefers-contrast: less)\");\n  const isCustom$ = createMediaQuery(\"(prefers-contrast: custom)\");\n\n  const contrast$ = observable<ContrastPreference>(() => {\n    if (isMore$.get()) return \"more\";\n    if (isLess$.get()) return \"less\";\n    if (isCustom$.get()) return \"custom\";\n    return \"no-preference\";\n  });\n\n  return contrast$ as ReadonlyObservable<ContrastPreference>;\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAE3B,SAAS,wBAAwB;AAAA;AAc1B,SAAS,0BAAsD;AACpE,QAAM,UAAU,iBAAiB,0BAA0B;AAC3D,QAAM,UAAU,iBAAiB,0BAA0B;AAC3D,QAAM,YAAY,iBAAiB,4BAA4B;AAE/D,QAAM,YAAY,WAA+B,MAAM;AACrD,QAAI,QAAQ,IAAI,EAAG,QAAO;AAC1B,QAAI,QAAQ,IAAI,EAAG,QAAO;AAC1B,QAAI,UAAU,IAAI,EAAG,QAAO;AAC5B,WAAO;AAAA,EACT,CAAC;AAED,SAAO;AACT;","names":[]}