{"version":3,"file":"media.mjs","sources":["../../../src/scope/media.ts"],"sourcesContent":["const keywords: Record<string, string> = {\n    reducedMotion: \"(prefers-reduced-motion: reduce)\",\n    motion: \"(prefers-reduced-motion: no-preference)\",\n    dark: \"(prefers-color-scheme: dark)\",\n    light: \"(prefers-color-scheme: light)\",\n    hover: \"(hover: hover) and (pointer: fine)\",\n    touch: \"(pointer: coarse)\",\n    portrait: \"(orientation: portrait)\",\n    landscape: \"(orientation: landscape)\",\n}\n\n/**\n * Turn a condition into a media query. Full media queries pass through\n * unchanged. Otherwise each space-separated token must match:\n *\n * - A width comparison: `\">=800\"`, `\"<1200px\"`, `\"> 40em\"`\n * - A keyword: `reducedMotion`, `motion`, `dark`, `light`, `hover`,\n *   `touch`, `portrait`, `landscape`\n *\n * Prefix a token with `!` to negate it, for instance `\">=800 !touch\"`.\n */\nexport function toMediaQuery(condition: string) {\n    if (condition.includes(\"(\")) return condition\n\n    return condition\n        .replace(/([<>!]=?)\\s+/g, \"$1\")\n        .trim()\n        .split(/\\s+/)\n        .map((token) => {\n            const isNot = token[0] === \"!\"\n            if (isNot) token = token.slice(1)\n\n            const width = /^([<>]=?)([\\d.]+)([a-z]*)$/.exec(token)\n            const query = width\n                ? `(width ${width[1]} ${width[2]}${width[3] || \"px\"})`\n                : keywords[token] || token\n\n            return isNot ? `(not (${query}))` : query\n        })\n        .join(\" and \")\n}\n"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAA2B;AACrC,IAAA,aAAa,EAAE,kCAAkC;AACjD,IAAA,MAAM,EAAE,yCAAyC;AACjD,IAAA,IAAI,EAAE,8BAA8B;AACpC,IAAA,KAAK,EAAE,+BAA+B;AACtC,IAAA,KAAK,EAAE,oCAAoC;AAC3C,IAAA,KAAK,EAAE,mBAAmB;AAC1B,IAAA,QAAQ,EAAE,yBAAyB;AACnC,IAAA,SAAS,EAAE,0BAA0B;CACxC;AAED;;;;;;;;;AASG;AACG,SAAU,YAAY,CAAC,SAAiB,EAAA;AAC1C,IAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;AAAE,QAAA,OAAO,SAAS;AAE7C,IAAA,OAAO;AACF,SAAA,OAAO,CAAC,eAAe,EAAE,IAAI;AAC7B,SAAA,IAAI;SACJ,KAAK,CAAC,KAAK;AACX,SAAA,GAAG,CAAC,CAAC,KAAK,KAAI;QACX,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;AAC9B,QAAA,IAAI,KAAK;AAAE,YAAA,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAEjC,MAAM,KAAK,GAAG,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC;QACtD,MAAM,KAAK,GAAG;AACV,cAAE,CAAA,OAAA,EAAU,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA,CAAA;AACnD,cAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK;QAE9B,OAAO,KAAK,GAAG,CAAA,MAAA,EAAS,KAAK,CAAA,EAAA,CAAI,GAAG,KAAK;AAC7C,IAAA,CAAC;SACA,IAAI,CAAC,OAAO,CAAC;AACtB;;;;"}