UNPKG

weapp-tailwindcss

Version:

把 tailwindcss 原子化样式思想,带给小程序开发者们! bring tailwindcss to miniprogram developers!

60 lines (59 loc) 2.24 kB
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 };