Urara-Blog/node_modules/.pnpm-store/v3/files/e6/8ba52d7ec3457f59767a567891c9f614aaca86914418deb036d1ad49390cf13dafda62da2b231f1b51952b471ff880b1c1c543e98dcd56e3928a3bbc585b2e
2022-08-14 01:14:53 +08:00

42 lines
1 KiB
Text

import { escapeRegExp } from '@unocss/core';
const variantMatcher = (name, handler) => {
const re = new RegExp(`^${escapeRegExp(name)}[:-]`);
return {
name,
match: (input) => {
const match = input.match(re);
if (match) {
return {
matcher: input.slice(match[0].length),
handle: (input2, next) => next({
...input2,
...handler(input2)
})
};
}
},
autocomplete: `${name}:`
};
};
const variantParentMatcher = (name, parent) => {
const re = new RegExp(`^${escapeRegExp(name)}[:-]`);
return {
name,
match: (input) => {
const match = input.match(re);
if (match) {
return {
matcher: input.slice(match[0].length),
handle: (input2, next) => next({
...input2,
parent: `${input2.parent ? `${input2.parent} $$ ` : ""}${parent}`
})
};
}
},
autocomplete: `${name}:`
};
};
export { variantMatcher as a, variantParentMatcher as v };