{"version":3,"sources":["css-scoping.ts"],"sourcesContent":["// TODO:\n// /**\n//  * Wrap a CSS document with a custom scope selector\n//  * @param css css document\n//  * @param scope scope selector\n//  * @returns \n//  */\n// export function addCSSScopeSelector(css: string, scope: string) {\n// \t// TODO: not working with @keyframes\n// \treturn `${scope} {\\n${\n// \t\t'    ' + \n// \t\tcss\n// \t\t\t.replaceAll(':host', '&')\n// \t\t\t.replaceAll('\\n', '\\n    ')\n// \t}\\n}`;\n// }\n\n// export function addCSSScope(css: string) {\n// \treturn addCSSScopeSelector(css, \"@scope\")\n// }\n\n/**\n * Add a scope selector everywhere in a CSS document\n * @param css css document\n * @param scope scope selector\n * @returns \n */\nexport function addCSSScopeSelector(css: string, scope: string) {\n\tconst scopedCSS = css.replace(/^[^@\\n]+{[^}]*}/gm, (part) => {\n\t\tif (part.match(/^(to|from|\\d+%|[\\s,\\n])+{[^}]*}$/)) return part; // is inside @keyframe (e.g. \"50% {}\"\"), ignore\n\t\telse {\n\t\t\t// for each selectors (e.g. ':host, a#b'), add the scope, e.g. 'scope, scope a#b'\n\t\t\treturn part.replace(/^[^@\\n]+(?={)/, (s) => {\n\t\t\t\tconst selectors = s.split(/, */g).map(selector => \n\t\t\t\t\t(selector.includes(\":host\") || selector.includes(\":root\")) ? \n\t\t\t\t\t\tselector\n\t\t\t\t\t\t\t.trimEnd()\n\t\t\t\t\t\t\t.replace(/\\:(host|root)\\s*\\:host-context/g, ':host-context')\n\t\t\t\t\t\t\t.replace(/\\:(host|root)(?![-\\w])/g, scope) : \n\t\t\t\t\t\tscope + ' ' + selector.trimEnd()\n\t\t\t\t\t);\n\t\t\t\treturn selectors.join(\", \") + ' '\n\t\t\t})\n\t\t}\n\t});\n\treturn scopedCSS;\n}\n\nexport function addCSSScope(css: string) {\n\treturn \"@scope {\\n\" + css + \"\\n}\";\n}"],"names":["addCSSScopeSelector","css","scope","replace","part","match","s","selectors","split","map","selector","includes","trimEnd","join","addCSSScope"],"mappings":"AA2BA,OAAO,SAASA,oBAAoBC,GAAW,EAAEC,KAAa;IAkB7D,OAjBkBD,IAAIE,OAAO,CAAC,qBAAqB,CAACC,OACnD,AAAIA,KAAKC,KAAK,CAAC,sCAA4CD,OAGnDA,KAAKD,OAAO,CAAC,iBAAiB,CAACG,IAS9BC,AARWD,EAAEE,KAAK,CAAC,QAAQC,GAAG,CAACC,CAAAA,WACrC,AAACA,SAASC,QAAQ,CAAC,YAAYD,SAASC,QAAQ,CAAC,WAChDD,SACEE,OAAO,GACPT,OAAO,CAAC,mCAAmC,iBAC3CA,OAAO,CAAC,2BAA2BD,SACrCA,QAAQ,MAAMQ,SAASE,OAAO,IAEfC,IAAI,CAAC,QAAQ;AAKlC;AAEA,OAAO,SAASC,YAAYb,GAAW;IACtC,OAAO,eAAeA,MAAM;AAC7B","sourceRoot":"/lib/uix-0.3.30/src/utils/","file":"css-scoping.ts"}