forked from rDrama/rDrama
1
0
Fork 0
rDrama/node_modules/tailwindcss/lib/util/createUtilityPlugin.js

53 lines
1.9 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createUtilityPlugin;
var _transformThemeValue = _interopRequireDefault(require("./transformThemeValue"));
var _pluginUtils = require("../util/pluginUtils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
let asMap = new Map([[_pluginUtils.asValue, 'any'], [_pluginUtils.asList, 'list'], [_pluginUtils.asColor, 'color'], [_pluginUtils.asAngle, 'angle'], [_pluginUtils.asLength, 'length'], [_pluginUtils.asLookupValue, 'lookup']]);
function createUtilityPlugin(themeKey, utilityVariations = [[themeKey, [themeKey]]], {
filterDefault = false,
resolveArbitraryValue = _pluginUtils.asValue
} = {}) {
let transformValue = (0, _transformThemeValue.default)(themeKey);
return function ({
matchUtilities,
variants,
theme
}) {
for (let utilityVariation of utilityVariations) {
var _asMap$get;
let group = Array.isArray(utilityVariation[0]) ? utilityVariation : [utilityVariation];
matchUtilities(group.reduce((obj, [classPrefix, properties]) => {
return Object.assign(obj, {
[classPrefix]: value => {
return properties.reduce((obj, name) => {
if (Array.isArray(name)) {
return Object.assign(obj, {
[name[0]]: name[1]
});
}
return Object.assign(obj, {
[name]: transformValue(value)
});
}, {});
}
});
}, {}), {
values: filterDefault ? Object.fromEntries(Object.entries(theme(themeKey) || {}).filter(([modifier]) => modifier !== 'DEFAULT')) : theme(themeKey),
variants: variants(themeKey),
type: (_asMap$get = asMap.get(resolveArbitraryValue)) !== null && _asMap$get !== void 0 ? _asMap$get : 'any'
});
}
};
}