weapp-tailwindcss
Version:
把 tailwindcss 原子化样式思想,带给小程序开发者们! bring tailwindcss to miniprogram developers!
60 lines (59 loc) • 2.24 kB
JavaScript
import { a as markCssMacroPlugin } from "./auto-2dg_uhEJ.js";
import { t as defu } from "./utils-MVwpU07P.js";
import plugin from "tailwindcss/plugin";
//#region src/css-macro/constants.ts
const queryKey = "weapp-tw-platform";
const ifdefAtRule = "weapp-tw-ifdef";
const ifndefAtRule = "weapp-tw-ifndef";
function quoteAtRuleParam(value) {
return `"${value.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"")}"`;
}
function createConditionalAtRule(value) {
return `@${ifdefAtRule} ${quoteAtRuleParam(value)}{&}`;
}
function createNegativeConditionalAtRule(value) {
return `@${ifndefAtRule} ${quoteAtRuleParam(value)}{&}`;
}
new RegExp(`\\(\\s*${queryKey}\\s*:\\s*"([^)]*)"\\)`, "g");
//#endregion
//#region src/css-macro/index.ts
const defaultOptions = {
dynamic: true,
variantsMap: {}
};
const cssMacroFactory = plugin.withOptions((options) => {
const { dynamic, variantsMap } = defu(options ?? {}, defaultOptions);
const staticVariants = Object.entries(variantsMap).map(([name, config]) => {
if (typeof config === "string") return {
name,
negative: false,
value: config
};
return {
name,
negative: Boolean(config.negative),
value: config.value
};
});
return (api) => {
const { matchVariant, addVariant } = api;
if (dynamic && typeof matchVariant === "function") {
matchVariant("ifdef", (value) => createConditionalAtRule(value));
matchVariant("ifndef", (value) => createNegativeConditionalAtRule(value));
}
if (typeof addVariant === "function") for (const variant of staticVariants) {
const query = variant.negative ? createNegativeConditionalAtRule(variant.value) : createConditionalAtRule(variant.value);
addVariant(variant.name, query);
}
};
});
const cssMacro = markCssMacroPlugin(((options) => {
return markCssMacroPlugin(cssMacroFactory(options));
}));
const cssMacroOptionsFunction = cssMacro;
const cssMacroFactoryOptionsFunction = cssMacroFactory;
cssMacroOptionsFunction.__isOptionsFunction = cssMacroFactoryOptionsFunction.__isOptionsFunction;
cssMacroOptionsFunction.__pluginFunction = cssMacroFactoryOptionsFunction.__pluginFunction;
cssMacroOptionsFunction.__configFunction = cssMacroFactoryOptionsFunction.__configFunction;
//#endregion
export { cssMacro as default };